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

來源:互聯網
上載者:User

一.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="http://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),不過這種布局不推薦使用,因為不同解析度的螢幕上顯示的位置會不相同。這種布局不過多介紹了。





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.