問(wèn)題
如何設(shè)置復(fù)選框在不同狀態(tài)的顏色?
默認(rèn)樣式

默認(rèn)樣式.png
預(yù)期樣式

預(yù)期樣式.png
回答
可以借助 CheckBox 的 android:theme 屬性實(shí)現(xiàn)預(yù)期效果。
步驟
- 在 res/values/colors.xml 文件中定義兩種顏色,一種用于選中狀態(tài),另外一種用于未選中狀態(tài)。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#6200EE</color>
<color name="color_999999">#999999</color>
...
</resources>
- 在 res/values/styles.xml 文件中定義一個(gè)樣式資源,
colorControlNormal用于指定未選中時(shí)的顏色,colorControlActivated用于指定選中后的顏色。
<resources>
...
<style name="CheckBox" parent="Theme.AppCompat.Light">
<item name="colorControlNormal">@color/color_999999</item>
<item name="colorControlActivated">@color/colorPrimary</item>
</style>
</resources>
- 在 res/layout 目錄下的布局中文件中,為
CheckBox控件設(shè)置android:theme屬性的值,引用在第 2 步中定義的樣式資源。
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
...
<CheckBox
android:id="@+id/single_cb_football"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="足球"
android:textColor="@color/color_333333"
android:textSize="@dimen/text_size4"
android:theme="@style/CheckBox" />
...
</layout>
附
參考資料
嚶嚶嚶999 : Android CheckBox修改選中狀態(tài)框內(nèi)部顏色及樣式