1. 程式人生 > >Android佈局的各種對齊問題

Android佈局的各種對齊問題

一、LinearLayout(線性佈局)

提供了控制元件水平垂直排列的模型,同時可以通過設定子控制元件的weight佈局引數控制各個控制元件在佈局中的相對大

小。

水平(horizontal)   

垂直(vertical)

fill-parent:佔滿整個螢幕

wrap-content:剛好適合控制元件內容的大小

對齊方式gravity取值:

top:不改變大小,位置置於容器的頂部

bottom:不改變大小,位置置於容器的底部

left:不改變大小,位置置於容器的左邊

right:不改變大小,位置置於容器的右邊

center_vertical:不改變大小,位置置於容器的縱向中央部分

center_horizontal:不改變大小,位置置於容器的橫向中央部分

center:不改變大小,位置置於容器的橫向和縱向的中央部分

fill_vertical:可能的話,縱向延伸可以填滿容器

fiil_horizontal:可能的話,橫向延伸可以填滿容器

fiil:可能的話,縱向和橫向延伸填滿容器


二、AbsoluteLayout(座標佈局)

可以讓子元素指定準確的x/y座標值,並顯示在螢幕上。(0, 0)為左上角,當向下或向右移動時,座標值將

變大。AbsoluteLayout沒有頁邊框,允許元素之間互相重疊(儘管不推薦)。我們通常不推薦使用

AbsoluteLayout,除非你有正當理由要使用它,因為它使介面程式碼太過剛性,以至於在不同的裝置上可能

不能很好地工作。

android:layout_x="40px"

android:layout_y="56px"確定控制元件位置


三、RelativeLayout(相對佈局)

允許子元素指定他們相對於其它元素或父元素的位置(通過ID指定)。因此,你可以以右對齊,或上下,

 

或置於螢幕中央的形式來排列兩個元素。元素按順序排列,因此如果第一個元素在螢幕的中央,那麼相對

 

於這個元素的其它元素將以螢幕中央的相對位置來排列。如果使用XML來指定這個layout,在你定義它之前

 

,被關聯的元素必須定義。

 

android:layout_centerInparent,將當前控制元件放置於起父控制元件的橫向和縱向的中央部分

 

android:layout_centerHorizontal,使當前控制元件置於父控制元件橫向的中央部分

 

android:layout_centerVertical,使當前控制元件置於父控制元件縱向的中央部分

 

android:layout_alignParentBottom,使當前控制元件的底端和父控制元件底端對齊

 

android:layout_alignParentLeft,使當前控制元件的左端和父控制元件左端對齊

 

android:layout_alignParentRight,使當前控制元件的右端和父控制元件右端對齊

 

android:layout_alignParentTop,使當前控制元件的頂端和父控制元件頂端對齊

 

android:layout_above 將該控制元件的底部至於給定ID的控制元件之上 

android:layout_below 將該控制元件的頂部至於給定ID的控制元件之下

android:layout_toLeftOf 將該控制元件的右邊緣和給定ID的控制元件的左邊緣對齊

android:layout_toRightOf 將該控制元件的左邊緣和給定ID的控制元件的右邊緣對齊 

android:layout_alignBaseline 該控制元件的baseline和給定ID的控制元件的baseline對齊 
android:layout_alignBottom 將該控制元件的底部邊緣與給定ID控制元件的底部邊緣 
android:layout_alignLeft 將該控制元件的左邊緣與給定ID控制元件的左邊緣對齊 
android:layout_alignRight 將該控制元件的右邊緣與給定ID控制元件的右邊緣對齊 
android:layout_alignTop 將給定控制元件的頂部邊緣與給定ID控制元件的頂部對齊 

 

Android:layout_marginBottom/layout_marginLeft/layout_marginRight/layout_marginTop=”30px”

 

使當前控制元件底部/左邊/右邊/頂部空出相應畫素空間

 


四、FrameLayout(單幀佈局)

是最簡單的一個佈局物件。它被定製為你螢幕上的一個空白備用區域,之後你可以在其中填充一個單一物件

— 比如,一張你要釋出的圖片。所有的子元素將會固定在螢幕的左上角;你不能為FrameLayout中的一個子

元素指定一個位置。後一個子元素將會直接在前一個子元素之上進行覆蓋填充,把它們部份或全部擋住(除非

後一個子元素是透明的)。

android:src=”@drawable/”屬性指定所需圖片的檔案位置,用ImageView顯示圖片時,也應當用

android:src指定要顯示的圖片


五、TableLayout(表格佈局)

以行列的形式管理子控制元件,每一行為一個TableRow的物件,TableRow也可以新增子控制元件

android:collapseColumns=“n”隱藏TableLayout裡面的TableRow的列n

android:stretchColumns=“n”設定列n為可延伸的列

android:shrinkColumns=“n”設定列n為可收縮的列