自訂按鈕
在本節中,您將使用 Button
Widget 和 XML 檔案,建立具有自定義影像而非文字的按鈕,該檔案會定義三個不同的影像以用於不同的按鈕狀態。 按下按鈕時,會顯示簡短訊息。
以滑鼠右鍵按下並下載下方的三個映像,然後將它們 複製到您專案的 Resources/drawable 目錄。 這些將用於不同的按鈕狀態。
在名為 android_button.xml的 Resources/drawable 目錄中建立新的檔案。 插入下列 XML:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/android_pressed"
android:state_pressed="true" />
<item android:drawable="@drawable/android_focused"
android:state_focused="true" />
<item android:drawable="@drawable/android_normal" />
</selector>
這會定義單一可繪製的資源,這會根據按鈕的目前狀態來變更其影像。 第一個<item>
定義android_pressed.png為按下按鈕時的影像(它已啟動):第二個<item>
定義android_focused.png做為當按鈕焦點時的圖像(當按鈕使用軌跡球或方向板醒目提示時),第三<item>
個定義android_normal.png做為正常狀態的影像(未按下或聚焦時)。 這個 XML 檔案現在代表單一可繪製的資源,當針對 Button
其背景參考時,顯示的影像將會根據這三種狀態而變更。
注意
元素的順序 <item>
很重要。 參考此可繪製時, <item>
會周遊 s,以判斷哪一個適用於目前按鈕狀態。
因為「一般」影像是最後一個,所以只有在條件 android:state_pressed
和 android:state_focused
兩者都評估為 false 時才會套用。
開啟 Resources/layout/Main.axml 檔案並新增 Button
元素:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:background="@drawable/android_button" />
屬性 android:background
會指定要用於按鈕背景的可繪製資源(當儲存在 Resources/drawable/android.xml 時,會參考為 @drawable/android
)。 這會取代整個系統用於按鈕的一般背景影像。 為了讓可繪製者根據按鈕狀態變更其影像,影像必須套用至背景。
若要讓按鈕在按下時執行動作,請在結尾新增下列程序代碼 OnCreate()
方法:
Button button = FindViewById<Button>(Resource.Id.button);
button.Click += (o, e) => {
Toast.MakeText (this, "Beep Boop", ToastLength.Short).Show ();
};
這會從配置擷取 Button
,然後在按兩下 時Button
新增Toast
要顯示的訊息。
現在執行應用程式。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。