CheckBox 有两个跟现实图片资源有关的属性
android:button android:backgroud这两个属性都可用selector赋值 若只需要有 选中 和 未选中 两种显示时,则只需要两张切图即可,但时当需要选中状态下点击,选中状态下未点击,未选中状态下点击,未选中状态下未点击时,若只用其中一个属性,则要4张不同的图片,两个属性同时使用时则使用3张图片即可,切点击状态的背景可通过开发人员画一个简单的纯色矢量图的方式解决。
cb_check_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/cb_checked" /> <item android:state_checked="false" android:drawable="@drawable/cb_no_check" /> </selector>cb_pressed_selector.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/cb_pressed"/> <item android:state_pressed="false" android:drawable="@drawable/cb_no_press"/> </selector>在写布局文件时,将Checkbox的android:button属性用cb_check_selector.xml设置,CheckBox的android:backgroud属性用cb_pressed_selector.xml设置。 这样做有一个较大的好处是可以将复选框样式和复选框背景样式分开,便于样式更改