Android CheckBox自定义图像无法正常显示

时间:2014-02-01 04:59:28

标签: android

在我的项目中,我有一个CheckBox,我正在尝试为已检查和未检查的状态添加自定义图像,但是图像没有正确显示xhdpi屏幕。帮助

我发布了xml和屏幕截图

custom_checkbox.xml

 <?xml version="1.0" encoding="utf-8"?>
       <selector  xmlns:android="http://schemas.android.com/apk/res/android">
       <item android:state_checked="false" android:drawable="@drawable/ic_uncheck" />
       <item android:state_checked="true" android:drawable="@drawable/ic_check" />
       <item android:drawable="@drawable/ic_uncheck" /> <!-- default -->
 </selector>

check_box.xml

     <CheckBox
        android:id="@+id/chkVibrate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:button="@drawable/checkbox"
        android:text="CheckBox Text"
        android:textColor="@color/white" />

click here for the hdpi image

click here for the xhdpi image

1 个答案:

答案 0 :(得分:1)

您应该将自定义xml文件用于按钮属性

 <CheckBox
    android:id="@+id/chkVibrate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:button="@drawable/custom_checkbox"
    android:text="CheckBox Text"
    android:textColor="@color/white" />

如果要在不同的聚焦状态下设置不同的图像,也可以用这种方式创建自定义文件。

<?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/ic_check"
    android:state_focused="false">
</item>
<item android:state_checked="true" 
    android:drawable="@drawable/ic_check"
    android:state_focused="true">
</item>
<item android:state_checked="false" 
    android:drawable="@drawable/ic_uncheck"
    android:state_focused="false">
</item>
<item android:state_checked="false" 
    android:drawable="@drawable/ic_uncheck"
    android:state_focused="true">
</item>
</selector>