標籤:android style blog http color io 使用 ar java
轉:http://blog.csdn.net/shakespeare001/article/details/7843460
1.首先來看看android:layout_gravity和android:gravity的使用區別。
android:gravity:
這個是針對控制項裡的元素來說的,用來控制元素在該控制項裡的顯示位置。例如,在一個Button按鈕控制項中設定如下兩個屬性,
android:gravity="left"和android:text="提交",這時Button上的文字“提交”將會位於Button的左部。
android:layout_gravity:
這個是針對控制項本身而言,用來控制該控制項在包含該控制項的父控制項中的位置。同樣,當我們在Button按鈕控制項中設定android:layout_gravity="left"屬性時,表示該Button按鈕將位於介面的左部。
2.屬性值:
這兩個屬性可選的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、
fill、clip_vertical。
一個屬性可以包含多個值,需用“|”分開。其含義如下:
| top |
將對象放在其容器的頂部,不改變其大小. |
| bottom |
將對象放在其容器的底部,不改變其大小 |
| left |
將對象放在其容器的左側,不改變其大小. |
| right |
將對象放在其容器的右側,不改變其大小 |
| center_vertical |
將對象縱向置中,不改變其大小. 垂直對齊:垂直方向上置中對齊。 |
| fill_vertical |
必要的時候增加對象的縱向大小,以完全充滿其容器 垂直方向填充 |
| center_horizontal |
將對象橫向置中,不改變其大小. 水平對齊:水平方向上置中對齊 |
| fill_horizontal |
必要的時候增加對象的橫向大小,以完全充滿其容器 水平方向填充 |
| center |
將對象橫縱置中,不改變其大小. |
| fill |
必要的時候增加對象的橫縱向大小,以完全充滿其容器. |
| clip_vertical |
附加選項,用於按照容器的邊來剪下對象的頂部和/或底部的內容. 剪下基於其縱向對齊設定:頂部對齊時,剪下底部;底部對齊時剪下頂部;除此之外剪下頂部和底部. 垂直方向裁剪 |
| clip_horizontal |
附加選項,用於按照容器的邊來剪下對象的左側和/或右側的內容. 剪下基於其橫向對齊設定:左側對齊時,剪下右側;右側對齊時剪下左側;除此之外剪下左側和右側.
水平方向裁剪 |
我們主要來看看center_vertical和center_horizontal兩個屬性值,center_vertical是指將對象在垂直方向上置中對齊,即在從上到下的方向上選擇中間的位置放好;center_horizontal是指將對象水平方向上置中對齊,即在從左至右的方向上選擇中間的位置放好。
3.特殊情況
當我們採用LinearLayout布局時,有以下特殊情況需要我們注意:
(1)當 android:orientation="vertical" 時, android:layout_gravity只有水平方向的設定才起作用,垂直方向的設定不起作用。即:left,right,center_horizontal 是生效的。
(2)當 android:orientation="horizontal" 時, android:layout_gravity只有垂直方向的設定才起作用,水平方向的設定不起作用。即:top,bottom,center_vertical 是生效的。
下面以一個例子說明:(本例來源於:http://blog.csdn.net/dekunchenivan/article/details/6718678)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="100dip" android:layout_height="100dip" android:layout_gravity="bottom|center_horizontal" android:gravity="center|bottom" android:background="#00FF00" android:text="@string/textview" /> <Button android:layout_width="100dip" android:layout_height="100dip" android:layout_gravity="bottom|left" android:gravity="left|top" android:background="#FF0000" android:text="@string/button" /> </LinearLayout>
其效果
在TextView中,我們設定了
android:layout_gravity="bottom|center_horizontal"
但該TextView並沒有顯示在螢幕的下方正中央,表明只有center_horizontal屬性起了作用,這正是因為我們使用了LinearLayout布局,
並且其
android:orientation="vertical"
只有水平方向的設定才會起作用,其他方向則會失效。同樣,Button也一樣。
android:layout_gravity和android:gravity的區別 (轉)