android基礎入門佈局講解(2)

一.LinearLayout(線性佈局):

LinearLayout是一行或列隻能放置一個控件的先行佈局,現在看一個實例:

activity_main.xml :

        
        
        

運行圖片:

從上圖可以看出控件是垂直排列的,我們通過android:orientation=”vertical”來設定LinearLayout是垂直排列的。

講解常用的公共屬性:

android:layout_width 指定控件或視圖組的寬度

android:layout_height 指定控件或視圖組的高度

android:layout_marginTop 指定控件或視圖組頂邊額外的空間

android:layout_marginBottom 指定控件或視圖組底邊額外的空間

android:layout_marginLeft 指定控件或視圖組左邊的額外空間

android:layout_marginRight 指定控件或視圖組右邊額外空間

其中為講解下layout_width和layout_height中設置屬性的意思:

1).fill_parent:

設置一個構件的佈局為fill_parent將強制性地使構件擴展,以填充佈局單元內盡可能多的空間。這跟Windows控件的dockstyle屬性大體一致。設置一個頂部佈局或控件為fill_parent將強制性讓它佈滿整個屏幕。

2).match_parent:

Android2.2中match_parent和fill_parent是一個意思 .兩個參數意思一樣,match_parent更貼切,於是從2.2開始兩個詞都可以用。那麼如果考慮低版本的使用情況你就需要用fill_parent瞭

3).wrap_content:

設置一個視圖的尺寸為wrap_content將強制性地使視圖擴展以顯示全部內容,佈局元素將根據內容更改大小。設置一個視圖的尺寸為wrap_content大體等同於設置Windows控件的Autosize屬性為True。

當把上面佈局中的android:orientation=”vertical”改成android:orientation=”horizontal”,這就是水平佈局:

例子(修改上面的佈局文件):

        
        
        

運行圖片:

我們從圖可以看出當使用水平佈局時,控件占據的是一列,

android:background 該屬性是設置背景顏色。

android:layout_width 在設置該屬性的時候我沒有在使用給的三個屬性值,而是自己定義的,這時候我們就需要瞭解下android的度量單位:

1).dp — 與密度無關的像素,1dp相當於160dpi的屏幕上的1像素,在佈局中當對控件指定尺寸時,推薦將dp作為度量單位。

2).sp — 與比例無關的像素,與dp類似,推薦指定字體大小。

3).pt — 磅,1磅等於1/72英寸(基於屏幕的物理尺寸)。

4).px — 像素,對應屏幕上的實際尺寸,不建議使用此單位,因為您的應用程序會在不同屏幕尺寸的設備上可能不能正確顯示。

二.RelativeLayout(相對佈局):

在很多時候線性佈局不能滿足我們的要求,例如我們需要在一行顯示多個控件,這時我們就需要RelativeLayout來進行相對佈局,RelativeLayout允許子元素指定他們相對於其他元素或父元素的位置(通過ID指定)。

常用的屬性:

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

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

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

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

android:layout_alignRaseline 該控件的baseline和給定ID的控件的baseline對齊

android:layout_alignBottom 將該控件的底部邊緣與給定ID控件的底部邊緣

android:layout_alignLeft 將該控件的左邊緣與給定的ID控件的左邊緣對齊

android:layout_alignRight 將該控件的右邊緣與給定ID控件的右邊緣對齊

android:layout_alignTop 將給定控件的頂部邊緣與給定ID控件的頂部對齊

android:layout_alignParentBottom 如果該值為true,則將該控件的底部和父控件的底部對齊

android:layout_alignParentLeft 如果該值為true,則將該控件的左邊與父控件的左邊對齊

android:layout_alignParentRight 如果該值為true,則將該控件的右邊與父控件的右邊對齊

android:layout_alignParentTop 如果該值為true,則將控件的頂部與父控件的頂部對齊

android:layout_centerHorizontal 如果值為真,該控件將被置於水平方向的中央。

android:layout_centerInParent 如果值為真,該控件將被置於父控件的水平方向和垂直方向的中央

android:layout_centerVertical 如果值為真,該控件被置於垂直方向的中央

android:layout_marginLeft 這是外邊距。

android:layout_marginTop 上偏移的值;(相對於上邊沿移動的值 xxdp)

android:layout_marginBottom 下偏移的值;

android:layout_marginLeft 左偏移的值;

android:layout_marginRight 右偏移的值;

實例演示:


    

    
    

    

運行圖片:

對於上面這個例子線性佈局就是無法實現的,而使用相對佈局則輕松實現。

三.TableLayout(表單佈局):

TableLayout將子元素的位置分配到行或列。TableLayout是由許多個TableRow組成,其中放著0個或多個控件。

實例:

    
        
        
    
    
        

        
    
    
        
        

運行圖片:

在位於Password TextView之下的單元格用填充,當如果不這樣做時,則登陸按鈕將顯示在Password TextView之下。

四. FrameLayout佈局:

FrameLayout是最簡單的一個佈局,在這個佈局中,整個界面被當成一塊空白備用區域,所有的子元素都不能被指定放置的位置,它們統統放於這塊區域的左上角,並且後面的子元素直接覆蓋在前面的子元素之上,將前面的子元素部分和全部遮擋。

實例演示:

<frameLayout xmlns:android="https://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent"
     android:layout_height="fill_parent">



</frameLayout>

運行圖片:

FrameLayout佈局是把控件不斷堆疊在前一個上面。

五.AbsoluteLayout(絕對位置佈局):

AbsoluteLayout可用於指定其子元素的確切位置(android:layout_x和android:layout_y),不過這種佈局不推薦使用,因為不同分辨率的屏幕上顯示的位置會不相同。這種佈局不過多介紹瞭。




發佈留言