Android應(yīng)用程序的用戶界面是一切,用戶可以看到并與之交互。已經(jīng)解了并用它定位在活動(dòng)中的各種視圖的布局。本章會(huì)給詳細(xì)視圖的各方面。
視圖(View)是一個(gè)對(duì)象繪制在屏幕上,用戶可以互動(dòng)的東西,ViewGroup 是一個(gè)對(duì)象,其中包含其他View(ViewGroup)的對(duì)象,并可以定義用戶界面的布局。
視圖可以定義在一個(gè)XML文件,它提供了一個(gè)人類可讀的結(jié)構(gòu)布局,類似于HTML布局。例如,一個(gè)簡單的垂直布局,文本視圖(TextView)和按鈕(Button)看起來像這樣:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a Button" /> </LinearLayout>
有一些 Android 提供的UI控件,允許建立應(yīng)用程序的圖形用戶界面。
| S.N. | UI控件與說明 |
|---|---|
| 1 |
TextView 這種控制用于顯示文本給用戶。 |
| 2 |
EditText EditText是TextView預(yù)定義的子類,包括豐富的編輯功能。 |
| 3 |
AutoCompleteTextView AutoCompleteTextView是一個(gè)視圖,它類似于EditText,不同之處是在用戶鍵入時(shí),它會(huì)顯示自動(dòng)完成建議的列表。 |
| 4 |
Button 按鈕式可以被按壓,或者點(diǎn)擊 - 由用戶執(zhí)行動(dòng)作。 |
| 5 |
ImageButton AbsoluteLayout使可以指定其子視圖的確切位置。 |
| 6 |
CheckBox 可以由用戶來切換開/關(guān)。提供一組可選擇的選項(xiàng)并不相互排斥時(shí)候呈現(xiàn)用戶,應(yīng)該使用復(fù)選框。 |
| 7 |
ToggleButton 一個(gè)開/關(guān)按鈕帶有指示燈。 |
| 8 |
RadioButton 單選按鈕有兩種狀態(tài):選中或取消選中。 |
| 9 |
RadioGroup RadioGroup用于組織一個(gè)或多個(gè)單選按鈕。 |
| 10 |
ProgressBar 進(jìn)度條視圖(ProgressBar)提供一些日常任務(wù),當(dāng)在后臺(tái)執(zhí)行任務(wù)時(shí),給出視覺反饋。 |
| 11 |
Spinner 一個(gè)下拉列表,允許用戶選擇從一組一個(gè)值(類似HTML中的select) |
| 12 |
TimePicker TimePicker視圖允許用戶選擇一天中的時(shí)間,在24小時(shí)模式或AM/ PM模式。 |
| 13 |
DatePicker TimePicker視圖允許用戶選擇一天中的時(shí)間,在24小時(shí)模式或AM/PM模式。 |
正如在前面的章節(jié)中,視圖對(duì)象可能有一個(gè)唯一的ID分配給,這個(gè)唯一識(shí)別視圖樹內(nèi)。一個(gè)視圖ID在XML標(biāo)簽的語法是:
android:id="@+id/text_id"
要?jiǎng)?chuàng)建一個(gè)用戶界面控件/視圖/小工具,必須在布局文件中定義一個(gè)視圖/部件,并將其分配一個(gè)唯一的ID如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a TextView" /> </LinearLayout>
最后控制對(duì)象創(chuàng)建一個(gè)實(shí)例,并獲得它的布局,使用以下命令:
TextView myText = (TextView) findViewById(R.id.text_id);