[Android]如何在Android studio中增加一個selector資源(用於button的背景設置)

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顏色。

發佈了46 篇原創文章 · 獲贊 28 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章