編輯:Android開發教程
在一些界面上,我們可能需要實現可以移動的按鈕等功能,最簡單的方式是調用View.layout(),任何布局上的空間都可以支持這種方式移動,上下左右參數值是相對於父viewgroup而言的。
public void layout(int l, int t, int r, int b) eg. button.layout(newLeft, newTop, newRight,newBottom);
但是這種方式有個缺陷就是,當同一個viewgroup中有控件更新(界面刷新)時,移動的控件會復位,即回到一開始的位置,這常常會讓人莫名其妙。
另外一種方法是調用MarginLayoutParams.setMargins(),重新設置控件位置參數來實現控件移動效果。這種方式比較適合RelativeLayout、FrameLayout,AbsoluteLayout,對於LinearLayout,因為最後增加的控件總在最下或最右,所以達不到移動效果,TableLayout也不行。
public MarginLayoutParams(MarginLayoutParams source) eg. FrameLayout.LayoutParams btnLp = (FrameLayout.LayoutParams)button.getLayoutParams(); btnLp.setMargins(newLeft, newTop, newRight, newBottom); button.requestLayout();
Android不建議應用直接調用layout()方法,所以個人建議選擇FrameLayout + setMargins()實現控件動態移動效果,還有一個經常搭配使用的方法是bringToFront(),當控件被蓋住看不見時相當有用。
對於那些想要在Android設備上體驗Skyfire帶來的個性化互聯網體驗的人們來說,這裡有個好消息。在被Opera以1.55億美元收購之後,Skyfire發布了Hori
前言定位服務是移動設備上最常用的功能之一,下文以 Android 源碼為基礎,詳細分析了 Android 系統中定 位服務的架構和實現。定位服務是 Android 系統提
這個例子的主Activity定義在AlertDialogSamples.java 主要用來介紹類AlertDialog的用法,AlertDialog提供的功能是多 樣的:
ServiceTestCase 為測試Service提供了一個可控的測試環境,它提供對Service 生命周期的基本支持,並可以通過注入一些 依賴對象來控制測試環境以便測