android中共有5中布局,GridLayout(網格布局又叫TableLayout,TableLayout是android3.0的布局格式),FrameLayout(幀布局),LinearLayout(線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局)。
每一個布局檔案都對應一個Android中的類。可以說每個布局都是類來産生的。LinearLayout對應的是android.widget.LinearLayou類;GridLayout布局 對應的是android.widget.GridLayoutt類;FrameLayout布局對應的是android.widget.FrameLayout類;AbsoluteLayout對應的是android.widget.AbsoluteLayout類;RelativeLayout布局對應的Java類是android.widget.RelativeLayout類。
安卓提供了兩種布局的方式,
方式一、通過布局檔案xml,聲明UI控件。
方式二:可通過程式設計的方式在Java代碼中建立View和ViewGroup的對象。
在android中提供了友善的可視化視圖來設計UI布局。
GridLayout(TableLayout)網格布局:GridLayout網格布局是在android4.0版本之後引入的,之前都是TableLayout表格布局。是以在使用GridLayout要注意sdk的最小版本。它的布局可分為水準和垂直,android:orientation="horizontal":表示水準布局;垂直為vertical。android:columnCount="1":設定總共有多少列,android:rowCount=""設定總共有多少行。在GridLayout 布局内的空間的屬性中添加android:layout_row="0"屬性,指定控件在哪一行,android:layout_column="",設定控件在哪一列。android:layout_rowSpan和android:layout_column Span是跨行和跨列的屬性。
FrameLayout幀布局:每一個控件都像一個圖層,會是層級疊加如果不對其進行樣式控制的話。
AbsoluteLayout絕對布局,使用的較少,因為手機的分别率不同,程式也要适應不同的分辨率,如果使用AbsoluteLayout布局在小螢幕手機上的可以使用,但是在大螢幕的手機上就會空出大片的空白。
LinearLayou線性布局:分為兩種,一個是垂直線性,另一個是水準線性。使用垂直時,控件的android:layout_gravity="center_vertical"屬性是不起作用的,同樣水準時,android:layout_gravity="center_horizontal"同樣不起作用。因為,線性布局是不會自動換行的。超出螢幕的部分是不顯示的。
RelativeLayout相對布局:是指一個控件在另一個控件的相對位置,在使用這個布局是兩個控件,不能互相引用,比如,A控件中的屬性A在B控件的右邊,就不能再在B控件中聲明B控件在A的左邊,否則會出現錯誤(和死循環是一個道理)。通常聲明一個控件的時候會指出此控件在另一個控件或父控件的相對位置。如果不指定控件的相對位置,都會預設在左上角。
本文轉自 墨宇hz 51CTO部落格,原文連結:http://blog.51cto.com/zzhhz/1625201