android中button 有focused, selected, pressed 等不同狀态,通過配置一個xml格式的 drawable "selector" 即可實作”在不同狀态下顯示不同背景圖檔“的功能。
1. 在res/drawable目錄下添加一個xml檔案,用來描述button在不同狀态下對應的不同圖檔。我這裡給該xml檔案命名為btn_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/btn_pressed"
/>
<!-- pressed -->
<item android:state_focused="true"
android:drawable="@drawable/btn_normal"
<!-- focused -->
<item android:drawable="@drawable/btn_normal"
<!-- default -->
</selector>
2. 在res/layout目錄下,對應的layout xml檔案中,将button的android:background屬性設定為btn_background即可。
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btn_background"
</linearlayout>
3.運作結果
預設狀态(unselected)
點選狀态(pressed)