如何将自定义图像应用于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"/>