android中共有5中佈局,GridLayout(網格佈局又叫TableLayout,TableLayout是android3.0的佈局格式),FrameLayout(幀佈局),LinearLayout(線性佈局),AbsoluteLayout(絕對佈局),RelativeLayout(相對佈局)。android
每個佈局文件都對應一個Android中的類。能夠說每一個佈局都是類來產生的。LinearLayout對應的是android.widget.LinearLayou類;GridLayout佈局 對應的是android.widget.GridLayoutt類;FrameLayout佈局對應的是android.widget.FrameLayout類;AbsoluteLayout對應的是android.widget.AbsoluteLayout類;RelativeLayout佈局對應的Java類是android.widget.RelativeLayout類。編程
安卓提供了兩種佈局的方式,ide
方式1、經過佈局文件xml,聲明UI控件。佈局
方式二:可經過編程的方式在Java代碼中建立View和ViewGroup的對象。spa
在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是跨行和跨列的屬性。xml
FrameLayout幀佈局:每個控件都像一個圖層,會是層級疊加若是不對其進行樣式控制的話。對象
AbsoluteLayout絕對佈局,使用的較少,由於手機的分別率不一樣,程序也要適應不一樣的分辨率,若是使用AbsoluteLayout佈局在小屏幕手機上的可使用,可是在大屏幕的手機上就會空出大片的空白。get
LinearLayou線性佈局:分爲兩種,一個是垂直線性,另外一個是水平線性。使用垂直時,控件的android:layout_gravity="center_vertical"屬性是不起做用的,一樣水平時,android:layout_gravity="center_horizontal"一樣不起做用。由於,線性佈局是不會自動換行的。超出屏幕的部分是不顯示的。it
RelativeLayout相對佈局:是指一個控件在另外一個控件的相對位置,在使用這個佈局是兩個控件,不能相互引用,好比,A控件中的屬性A在B控件的右邊,就不能再在B控件中聲明B控件在A的左邊,不然會出現錯誤(和死循環是一個道理)。一般聲明一個控件的時候會指出此控件在另外一個控件或父控件的相對位置。若是不指定控件的相對位置,都會默認在左上角。