第六講:用戶界面 View(二)

三、絕對佈局 AbsoluteLayoutandroid

絕對定位AbsoluteLayout,又能夠叫作座標佈局,能夠直接指定子元素的絕對位置,這種佈局簡單直接,直觀性強,可是因爲手機屏幕尺寸差異比較大,使用絕對定位的適應性會比較差。web

下面咱們舉一個例子看看:例子裏的機器人圖片大小是250X250,能夠看到咱們使用android:layout_x和android:layout_y來指定子元素的縱橫座標。佈局

<?xml version=」1.0″ encoding=」utf-8″?>
<AbsoluteLayout android:id=」@+id/AbsoluteLayout01″
android:layout_width=」fill_parent」
android:layout_height=」fill_parent」
xmlns:android=」http://schemas.android.com/apk/res/android」
android:background=」#fff」>學習

<ImageView
android:src=」@drawable/android」
android:layout_y=」40dip」
android:layout_width=」wrap_content」
android:layout_x=」35dip」
android:id=」@+id/ImageView01″
android:layout_height=」wrap_content」>
</ImageView>
<TextView
android:layout_height=」wrap_content」
android:layout_width=」fill_parent」
android:id=」@+id/TextView01″
android:text=」Android2.2 學習指南」
android:textColor=」#0f0″
android:textSize=」28dip」
android:layout_y=」330dip」
android:layout_x=」35dip
「>
</TextView>
<TextView
android:layout_height=」wrap_content」
android:layout_width=」fill_parent」
android:id=」@+id/TextView02″
android:text=」圖文並茂,理論清晰,操做性強」
android:textColor=」#333″
android:textSize=」18dip」
android:layout_y=」365dip」
android:layout_x=」35dip
「>
</TextView>
</AbsoluteLayout>測試

讓咱們看一下在WQVGA的模擬器下的顯示效果:ui

image

再在WVGA800的模擬器下看看顯示效果:orm

image

Tip: 在絕對定位中,若是子元素不設置layout_x和layout_y,那麼它們的默認值是0,也就是說它會像在FrameLayout同樣這個元素會出如今左上角。xml

四、相對佈局 RelativeLayout圖片

相對佈局 RelativeLayout 容許子元素指定它們相對於其父元素或兄弟元素的位置,這是實際佈局中最經常使用的佈局方式之一。它靈活性大不少,固然屬性也多,操做難度也大,屬性之間產生衝突的的可能性也大,使用相對佈局時要多作些測試。ip

下面咱們用相對佈局再作一次上面的例子,首先放置一個圖片,其它兩個文本分別相對上一個元素定位:

<?xml version=」1.0″ encoding=」utf-8″?>

<RelativeLayout android:id=」@+id/RelativeLayout01″
android:layout_width=」fill_parent」
android:layout_height=」fill_parent」
android:background=」#fff」
xmlns:android=」http://schemas.android.com/apk/res/android」>

<ImageView android:id=」@+id/ImageView01″
android:src=」@drawable/android」
android:layout_width=」fill_parent」
android:layout_height=」wrap_content」
android:layout_marginTop=」40dip」
>
</ImageView>
<TextView
android:layout_height=」wrap_content」
android:layout_width=」wrap_content」
android:id=」@+id/TextView01″
android:text=」Android2.2 學習指南」
android:textColor=」#0f0″
android:textSize=」28dip」
android:layout_below=」@id/ImageView01″
android:layout_centerHorizontal=」true」

android:layout_marginTop=」10dip」>
</TextView>
<TextView
android:layout_height=」wrap_content」
android:layout_width=」wrap_content」
android:id=」@+id/TextView02″
android:text=」圖文並茂,理論清晰,操做性強」
android:textColor=」#333″
android:textSize=」18dip」
android:layout_below=」@id/TextView01″
android:layout_centerHorizontal=」true」
android:layout_marginTop=」5dip
「>
</TextView>
</RelativeLayout>

讓咱們看一下在WQVGA的模擬器下的顯示效果:

image

再看一下在更大屏幕(WVGA800)模擬器上的顯示效果:

image

從上圖能夠看到界面效果基本保持了一致,而不是像絕對定位同樣龜縮在左上角;同窗們看到自動縮放的功能是採用了dip作單位帶來的好處。關於dip,不懂的同窗能夠看我在開發小知識裏寫的專門的文章。

下面介紹一下RelativeLayout用到的一些重要的屬性:

第一類:屬性值爲true或false
android:layout_centerHrizontal                                           水平居中
android:layout_centerVertical                                            垂直居中
android:layout_centerInparent                                           相對於父元素徹底居中
android:layout_alignParentBottom                                     貼緊父元素的下邊緣
android:layout_alignParentLeft                                          貼緊父元素的左邊緣
android:layout_alignParentRight                                        貼緊父元素的右邊緣
android:layout_alignParentTop                                          貼緊父元素的上邊緣
android:layout_alignWithParentIfMissing                            若是對應的兄弟元素找不到的話就以父元素作參照物

第二類:屬性值必須爲id的引用名「@id/id-name」
android:layout_below                          在某元素的下方
android:layout_above                          在某元素的的上方
android:layout_toLeftOf                       在某元素的左邊
android:layout_toRightOf                     在某元素的右邊

android:layout_alignTop                      本元素的上邊緣和某元素的的上邊緣對齊
android:layout_alignLeft                      本元素的左邊緣和某元素的的左邊緣對齊
android:layout_alignBottom                 本元素的下邊緣和某元素的的下邊緣對齊
android:layout_alignRight                    本元素的右邊緣和某元素的的右邊緣對齊

第三類:屬性值爲具體的像素值,如30dip,40px
android:layout_marginBottom              離某元素底邊緣的距離
android:layout_marginLeft                   離某元素左邊緣的距離
android:layout_marginRight                 離某元素右邊緣的距離
android:layout_marginTop                   離某元素上邊緣的距離

咱們再把上面的例子從新作一遍,這一次多放一些屬性在裏面,你們試驗一下:

<?xml version=」1.0″ encoding=」utf-8″?>

<RelativeLayout android:id=」@+id/RelativeLayout01″
android:layout_width=」fill_parent」
android:layout_height=」fill_parent」
android:background=」#cfff」 色彩的設置是argb,第一個c是透明度
xmlns:android=」http://schemas.android.com/apk/res/android」>

<ImageView android:id=」@+id/ImageView01″
android:src=」@drawable/android」
android:layout_width=」wrap_content」
android:layout_height=」wrap_content」
android:layout_marginTop=」40dip」
android:layout_centerHorizontal=」true」>
</ImageView>

<TextView
android:layout_height=」wrap_content」
android:layout_width=」wrap_content」
android:id=」@+id/TextView01″
android:text=」Android2.2 學習指南」
android:textColor=」#0f0″
android:textSize=」28dip」
android:layout_below=」@id/ImageView01″
android:layout_centerHorizontal=」true」
android:layout_marginTop=」10dip」>
</TextView>

<TextView
android:layout_height=」wrap_content」
android:layout_width=」wrap_content」
android:id=」@+id/TextView02″
android:text=」圖文並茂,理論清晰,操做性強」
android:textColor=」#333″
android:textSize=」18dip」
android:layout_below=」@id/TextView01″
android:layout_centerHorizontal=」true」
android:layout_marginTop=」5dip」>
</TextView>

<TextView
android:layout_height=」wrap_content」
android:layout_width=」wrap_content」
android:id=」@+id/TextView03″
android:text=」alignTop」
android:textColor=」#333″
android:textSize=」18dip」
android:layout_alignTop=」@id/ImageView01″  和ImageView01上邊緣對齊
android:layout_centerHorizontal=」true」>
</TextView>

<TextView
android:layout_height=」wrap_content」
android:layout_width=」wrap_content」
android:id=」@+id/TextView04″
android:text=」alignLeft」
android:textColor=」#333″
android:textSize=」18dip」
android:layout_alignLeft=」@id/ImageView01″
android:layout_centerHorizontal=」true」>
</TextView>

<TextView
android:layout_height=」wrap_content」
android:layout_width=」wrap_content」
android:id=」@+id/TextView05″
android:text=」alignRight」
android:textColor=」#333″
android:textSize=」18dip」
android:layout_alignRight=」@id/ImageView01″
android:layout_centerHorizontal=」true」>
</TextView>

<TextView
android:layout_height=」wrap_content」
android:layout_width=」wrap_content」
android:id=」@+id/TextView06″
android:text=」alignBottom」
android:textColor=」#333″
android:textSize=」18dip」
android:layout_alignBottom=」@id/ImageView01″
android:layout_centerHorizontal=」true」>
</TextView>
</RelativeLayout>

image

好吧今天就講到這裏。

相關文章
相關標籤/搜索