序:本文介紹FrameLayout兩點:1.FrameLayout是什麼 2.FrameLayout如何設定其內子視圖(例如ImageView)的位置。
1. 什麼是FrameLayout布局?
FrameLayout布局是最簡單的布局方式,所有添加到這個布局中的視圖都是以層疊的方式顯示。第一個添加到布局中視圖顯示在最底層,最後一個被放在最頂層。上一層的視圖會覆蓋下一層的視圖,因此該布局類似於堆棧布局。注意點:a.預設對其方式是左上方對其。b.若要設定子視圖的位置,要設定layout_gravity屬性值。
2.FrameLayout如何設定其子視圖(例如ImageView)的位置?
通過layout_gravity設定值,再配合layout_marginTop,layout_marginLeft來設定位置。
舉例,下面程式結果中,有4幅圖:第一層圖天空大背景,第二層圖是鳥圖,第三層圖是觀音菩薩圖,第四層圖是汽車圖。若不設定ImageView的位置,則此四幅圖都將默顯示在左上方,並且第一層圖在最下面,第四層圖在最上面。要實現圖中四幅圖的位置效果,則分別對應以下設定:
a. 第一層天空背景圖 : layout_gravity="center"
b. 第二層鳥圖 : layout_gravity = "center" layout_marginTop="-70dp" (注意:此處是負數,因為 layout_gravity = "center" 表示水平和垂直方向上置中,基準線為視圖水平和垂直方向的中點,因為鳥在基準線的上方向(負方向),所以為負數)
c. 第三層觀音菩薩圖 :layout_gravity="top" layout_marginTop="20dp" layout_marginLeft="20dp' (注意:layout_gravity="top" 表示垂直方向頂端對齊,而水平方向是預設靠左對齊)
d. 第四層汽車圖 : layout_gravity="center" layout_marginTop="40dp" (對應第二層鳥圖的分析,就很容易理解,汽車在基準線下方向(正方向),所以為負數。並且注意:此處的基準線不是螢幕的最上方,而是水平和垂直方向各自的中心線)
以上的分析,請參考實際程式運行結果圖和視圖代碼。
---------------------------------------------------------------------------------------------------------------------------------------------
程式運行結果圖:
整頁模式代碼:/res/layout/activity_main.xml
<frameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent" > </frameLayout>