如何将自定义图像应用于android中的checkbox
我试图将自定义图像应用于android中的checkbox,为此,我创build了一个check_custom.xml
文件,在该文件中为不同状态的checkbox定义自定义图像,如下所示:
<item android:state_checked="true" android:drawable="@drawable/btn_check_on" /> <!-- checked --> <item android:state_checked="false" android:drawable="@drawable/btn_check_off" /> <!-- unchecked --> <item android:state_focused="true" android:drawable="@drawable/btn_check_onfocus" /> <!--on focus--> <item android:drawable="@drawable/btn_check_off" /> <!-- default -->
三个不同的图像上的三个状态检查,对焦和未选中,然后我把这个XML文件分配给checkbox的背景属性,但我没有得到所需的结果,这种技术应用自定义图像以及默认图像。
萨尔曼,设置android:button
而不是android:background
。 另请参阅自定义checkbox图像android
当背景布局很暗时,我不喜欢checkbox默认图像的外观,所以我使用xmlselect器将其更改为在button中具有白色背景。
在android中需要select器:button =“@ drawable / selector_check”
<CheckBox android:id="@+id/checkBox1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="left" android:text="Show password" android:textColor="@color/white" android:button="@drawable/selector_check" >
以下是“drawable / selector_check.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="@android:drawable/checkbox_on_background" /> <!-- checked --> <item android:state_checked="false" android:drawable="@android:drawable/checkbox_off_background" /> <!-- unchecked--> </selector>
这就是结果:
将android-sdk / platforms / android – #/ data / res / drawable中的btn_check.xml复制到项目的可绘制文件夹中,并将“开”和“关”图像状态更改为自定义图像。
那么你的XML将只需要android:button="@drawable/btn_check"
<CheckBox android:button="@drawable/btn_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" />
如果你想使用不同的默认的Android图标,你可以使用android:button="@android:drawable/..."
<item android:drawable="@drawable/ON" android:state_checked="false"/> <item android:drawable="@drawable/OFF" android:state_checked="true"/> <item android:drawable="@drawable/ON"/>