1. 程式人生 > >Android常用五大布局屬性控制

Android常用五大布局屬性控制

一、LinearLayout(線性佈局)

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

小。

水平(vertical)垂直(horizontal)

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_alignParentBottom,使當前控制元件的底端和父控制元件底端對齊

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為可收縮的列

Android控制元件佈局常用屬性

<!--單個控制元件經常用到
android:id —— 為控制元件指定相應的ID
android:text —— 指定控制元件當中顯示的文字,需要注意的是,這裡儘量使用strings.xml檔案當中的字串
android:grivity —— 指定控制元件的基本位置,比如說居中,居右等位置
android:textSize —— 指定控制元件當中字型的大小
android:background —— 指定該控制元件所使用的背景色,RGB命名法 
android:width —— 指定控制元件的寬度
android:height —— 指定控制元件的高度
android:padding* —— 指定控制元件的內邊距,也就是說控制元件當中的內容
android:sigleLine —— 如果設定為真的話,則將控制元件的內容在同一行當中進行顯示
-->

<!--相對佈局時經常用到
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:alignParentBottom 如果該值為true,則將該控制元件的底部和父控制元件的底部對齊
android:layout_alignParentLeft 如果該值為true,則將該控制元件的左邊與父控制元件的左邊對齊
android:layout_alignParentRight 如果該值為true,則將該控制元件的右邊與父控制元件的右邊對齊
android:layout_alignParentTop 如果該值為true,則將空間的頂部與父控制元件的頂部對齊

android:layout_centerHorizontal 如果值為真,該控制元件將被至於水平方向的中央
android:layout_centerInParent 如果值為真,該控制元件將被至於父控制元件水平方向和垂直方向的中央
android:layout_centerVertical 如果值為真,該控制元件將被至於垂直方向的中
-->

擴充套件知識:

EditText的android:hint 

設定EditText為空時輸入框內的提示資訊。 

android:gravity  
android:gravity屬性是對該view 內容的限定.比如一個button 上面的text.  你可以設定該text 在view的靠左,靠右等位置.以button為例,android:gravity="right"則button上面的文字靠右 

android:layout_gravity 
android:layout_gravity是用來設定該view相對與起父view 的位置.比如一個button 在linearlayout裡,你想把該button放在靠左、靠右等位置就可以通過該屬性設定.以button為例,android:layout_gravity="right"則button靠右 

android:layout_alignParentRight
 

使當前控制元件的右端和父控制元件的右端對齊。這裡屬性值只能為true或false,預設false。 

android:scaleType: 
android:scaleType是控制圖片如何resized/moved來匹對ImageView的size。ImageView.ScaleType / android:scaleType值的意義區別: 

CENTER /center  按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則擷取圖片的居中部分顯示 

CENTER_CROP / centerCrop  按比例擴大圖片的size居中顯示,使得圖片長(寬)等於或大於View的長(寬) 

CENTER_INSIDE / centerInside  將圖片的內容完整居中顯示,通過按比例縮小或原來的size使得圖片長/寬等於或小於View的長/寬 

FIT_CENTER / fitCenter  把圖片按比例擴大/縮小到View的寬度,居中顯示 

FIT_END / fitEnd   把圖片按比例擴大/縮小到View的寬度,顯示在View的下部分位置 

FIT_START / fitStart  把圖片按比例擴大/縮小到View的寬度,顯示在View的上部分位置 

FIT_XY / fitXY  把圖片不按比例擴大/縮小到View的大小顯示 

MATRIX / matrix 用矩陣來繪製,動態縮小放大圖片來顯示。 

要注意一點,Drawable資料夾裡面的圖片命名是不能大寫的。