Android studio版本:3.5.2
SDK Platforms版本: Android 10.0 (API 29)
SDK Platform-Tools版本: 29.0.5
SDK Tools版本:26.1.1
1. 首先在app/res中增加selector:
在工程的文件樹中選擇“app->res”,點擊鼠標右鍵,在彈出菜單中選擇“New->Android resource file”,然後在彈出的“New Resource File”對話框中,填寫selector的文件名,將“Resource Type”改爲“Drawable”,將“Root element”改爲“selector”,“Directory name”指定了要創建的selector文件所在的文件夾。點擊OK即可看到“app->res->drawable”中已經創建了新的selector文件。
2. 編輯selector文件:
<?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/colorCategoryButtonBKSelected"/>
<item android:state_selected="true" android:drawable="@drawable/colorCategoryButtonBKSelected"/>
<item android:drawable="@drawable/colorCategoryButtonBKDefault"/>
</selector>
這個selector表示在按鈕按下和選中時顯示colorCategoryButtonBKSelected所指定的顏色,默認爲colorCategoryButtonBKDefault顏色。
注意:這裏不能直接設置屬性item android:color=xxx,這樣在運行時會報錯。
需要在res->values->colors.xml中設置drawable,然後在item中設置android:drawable屬性:
<resources>
<color name="colorPrimary">#008577</color>
...
<drawable name="colorCategoryButtonBKDefault">#000000</drawable>
<drawable name="colorCategoryButtonBKSelected">#999900</drawable>
</resources>
3. Button的狀態:
默認顯示colorCategoryButtonBKDefault顏色;點擊時顯示colorCategoryButtonBKSelected顏色;當button設置setSelected(true)時纔會保持顯示colorCategoryButtonBKSelected顏色。