在學習控制項的過程中我們應該對一些常用的XML屬性有更深入的理解,這有利於我們繼續學習Android的進階技術。
1:android:id
如果要在代碼或在XML布局檔案中引用某個控制項,該控制項必須要設定android:id的屬性-@id/value或者@+id/value。
第一種格式中的value必須要在R.id類中存在,也就是說,要為當前控制項指定一個在R.id類中已經存在的int類型變數作為其ID值,
如果該變數不存在的話,XML布局檔案無法驗證通過。第二種在@和id之間多了一個加號,表示如果value指定的變數如果在R.id類
中存在,則使用已經存在的變數值作為其ID值,否則將會在R.id類中建立一個int類型的變數並儲存。
2:android:layout_width和android:layout_height
這兩個屬性分別用來設定控制項的寬度和高度,是必選的。可以設定的值除了fill_parent和wrap_content外,還可以設定精確的值,單位是px或者dp(dip)。
其中fill_parent表示儘可能地充滿父控制項的空間,如果當前控制項是最上層,就是充滿整個螢幕。
wrap_content表示根據控制項中的內容來確定,也就是說,在滿足完全顯示控制項內容的情況下,把寬度和高度設定為最小。
3:android:layout_margin
設定控制項到相鄰控制項或者邊緣的距離可以使用android:layout_margim屬性。該屬性設定了4個方向的距離,也就是上下左右這4個。
例如:android:layout_margin="50dp"。如果想要單獨設定某一個方向的距離,可以單獨使用android:marginTop、Bottom、Left、Right這4個屬性。
如果同時設定了android:layout_margin和這4個屬性的話,系統優先使用android:layout_margin的屬性值。
4:android:padding
android:padding屬性可以設定控制項的內容在4個方向距離控制項邊緣的距離。與android:layout_margin類似,它也有單獨設定某一個方向距離的屬性,
同時也優先於這4個單獨的屬性。我們初學者比較容易混淆android:padding和android:layout_margin的概念。其實這二者很容易區分,有layout的屬性是
指控制項與控制項或者是邊緣之間的距離,所以加上了layout,它和控制項的布局相關;而沒有layout的屬性是指該控制項中的內容距離控制項邊緣的距離,和控制項的布局位置無關。
5:android:layout_weight
這個屬性在進行均衡布局時非常有用。所謂均衡布局,是指兩個或者多個控制項要佔用等比例的地區,它們所佔的比例不因螢幕的方向變化、
螢幕的密度變化以及總寬度或高度的變化而變化。例如,有3個按鈕,要求在水平方向各佔1/3的長度,就可以將這3個控制項的android:layout_weight
屬性設定為相等的3個值(必須是正整數,不需要加任何單位),如android:layout_weight="1"。
6:android:layout_gravity和android:gravity
這兩個屬性分別表示控制項和控制項中的內容的位置。例如,在一個<LinearLayout>>標籤中,有一個<Button>按鈕,要想使Button在水平方向置中,
即可以在<Button>標籤中設定android:layout_gravity屬性,也可以在<LinearLayout>標籤中設定android:gravity屬性。
android:layout_gravity和android:gravity可設定的屬性值完全一樣,常用的屬性值如下:
center_horizontal:水平置中 center_vertical:垂直置中
center:水平和垂直都置中 left:設定到左側 right:設定到右側
top:設定到頂端 botton:設定底端
以上屬性均可設定多個,用" | "號串連。
7:android:visibility
該屬性決定了當前控制項是否可見。可設定以下3個屬性值。
visible:控制項可見
invisible:控制項不可見,但保留控制項的位置
gone:控制項不可見,也不保留控制項的位置
8:android:background
該屬性用於設定控制項的背景色或背景圖。如果要設定背景色,需要使用#color形式的屬性值,其中color表示一個16進位的顏色值。
設定背景圖的話,格式為@drawable/resourceId,其中resourceId表示映像的資源ID,假如我們想要更改我們整個介面的背景圖的話,
可以先找到最上層的一個Layout,在其標籤裡設定它的android:background=“@drawable/background"。
9:android:onClick
從Android1.6開始,視圖便多了一個android:onClick屬性,通過該屬性,可以直接定義當前布局檔案的Activity類中的單擊事件的方法名。
該方法的定義要和單擊事件一致,方法名可以任意指定,但存取修飾詞必須是public。
此外還有android:clickable和android:longClickable,這兩個屬性都需要設定布爾類型的屬性值,前者表示當前控制項是否可以接受單擊事件,
後者表示當前控制項是否可以接受長按單擊事件(按住控制項不動,則觸發長按單擊事件)。
10:android:focusable和android:focusableInTouchMode
大多數的控制項都可以獲得焦點,也就是處在選中狀態。android:focusable決定當前控制項是否可以獲得焦點。
如果將android:foucsableInTouchMode屬性值設定為true,當觸摸控制項時,會先將焦點移動到被觸摸的控制項上,
然後需要再次觸摸該控制項才會響應單擊事件。使用該屬性需要將android:focusable屬性值設定為true。
在學習控制項的過程中我們應該對一些常用的XML屬性有更深入的理解,這有利於我們繼續學習Android的進階技術。
1:android:id
如果要在代碼或在XML布局檔案中引用某個控制項,該控制項必須要設定android:id的屬性-@id/value或者@+id/value。
第一種格式中的value必須要在R.id類中存在,也就是說,要為當前控制項指定一個在R.id類中已經存在的int類型變數作為其ID值,
如果該變數不存在的話,XML布局檔案無法驗證通過。第二種在@和id之間多了一個加號,表示如果value指定的變數如果在R.id類
中存在,則使用已經存在的變數值作為其ID值,否則將會在R.id類中建立一個int類型的變數並儲存。
2:android:layout_width和android:layout_height
這兩個屬性分別用來設定控制項的寬度和高度,是必選的。可以設定的值除了fill_parent和wrap_content外,還可以設定精確的值,單位是px或者dp(dip)。
其中fill_parent表示儘可能地充滿父控制項的空間,如果當前控制項是最上層,就是充滿整個螢幕。
wrap_content表示根據控制項中的內容來確定,也就是說,在滿足完全顯示控制項內容的情況下,把寬度和高度設定為最小。
3:android:layout_margin
設定控制項到相鄰控制項或者邊緣的距離可以使用android:layout_margim屬性。該屬性設定了4個方向的距離,也就是上下左右這4個。
例如:android:layout_margin="50dp"。如果想要單獨設定某一個方向的距離,可以單獨使用android:marginTop、Bottom、Left、Right這4個屬性。
如果同時設定了android:layout_margin和這4個屬性的話,系統優先使用android:layout_margin的屬性值。
4:android:padding
android:padding屬性可以設定控制項的內容在4個方向距離控制項邊緣的距離。與android:layout_margin類似,它也有單獨設定某一個方向距離的屬性,
同時也優先於這4個單獨的屬性。我們初學者比較容易混淆android:padding和android:layout_margin的概念。其實這二者很容易區分,有layout的屬性是
指控制項與控制項或者是邊緣之間的距離,所以加上了layout,它和控制項的布局相關;而沒有layout的屬性是指該控制項中的內容距離控制項邊緣的距離,和控制項的布局位置無關。
5:android:layout_weight
這個屬性在進行均衡布局時非常有用。所謂均衡布局,是指兩個或者多個控制項要佔用等比例的地區,它們所佔的比例不因螢幕的方向變化、
螢幕的密度變化以及總寬度或高度的變化而變化。例如,有3個按鈕,要求在水平方向各佔1/3的長度,就可以將這3個控制項的android:layout_weight
屬性設定為相等的3個值(必須是正整數,不需要加任何單位),如android:layout_weight="1"。
6:android:layout_gravity和android:gravity
這兩個屬性分別表示控制項和控制項中的內容的位置。例如,在一個<LinearLayout>>標籤中,有一個<Button>按鈕,要想使Button在水平方向置中,
即可以在<Button>標籤中設定android:layout_gravity屬性,也可以在<LinearLayout>標籤中設定android:gravity屬性。
android:layout_gravity和android:gravity可設定的屬性值完全一樣,常用的屬性值如下:
center_horizontal:水平置中 center_vertical:垂直置中
center:水平和垂直都置中 left:設定到左側 right:設定到右側
top:設定到頂端 botton:設定底端
以上屬性均可設定多個,用" | "號串連。
7:android:visibility
該屬性決定了當前控制項是否可見。可設定以下3個屬性值。
visible:控制項可見
invisible:控制項不可見,但保留控制項的位置
gone:控制項不可見,也不保留控制項的位置
8:android:background
該屬性用於設定控制項的背景色或背景圖。如果要設定背景色,需要使用#color形式的屬性值,其中color表示一個16進位的顏色值。
設定背景圖的話,格式為@drawable/resourceId,其中resourceId表示映像的資源ID,假如我們想要更改我們整個介面的背景圖的話,
可以先找到最上層的一個Layout,在其標籤裡設定它的android:background=“@drawable/background"。
9:android:onClick
從Android1.6開始,視圖便多了一個android:onClick屬性,通過該屬性,可以直接定義當前布局檔案的Activity類中的單擊事件的方法名。
該方法的定義要和單擊事件一致,方法名可以任意指定,但存取修飾詞必須是public。
此外還有android:clickable和android:longClickable,這兩個屬性都需要設定布爾類型的屬性值,前者表示當前控制項是否可以接受單擊事件,
後者表示當前控制項是否可以接受長按單擊事件(按住控制項不動,則觸發長按單擊事件)。
10:android:focusable和android:focusableInTouchMode
大多數的控制項都可以獲得焦點,也就是處在選中狀態。android:focusable決定當前控制項是否可以獲得焦點。
如果將android:foucsableInTouchMode屬性值設定為true,當觸摸控制項時,會先將焦點移動到被觸摸的控制項上,
然後需要再次觸摸該控制項才會響應單擊事件。使用該屬性需要將android:focusable屬性值設定為true。