Android:动态设置复选框背景

时间:2014-04-09 01:45:54

标签: android checkbox view

我正在尝试动态设置复选框的背景颜色。谷歌搜索后我发现了以下内容:

checkbox.setButtonDrawable(R.drawable.checkbox_background);

但不幸的是,它只会导致复选框背景消失。

任何建议或意见都会有所帮助!

以下是用作复选框背景的xml文件:

checkbox_background.xml

 <?xml version="1.0" encoding="utf-8"?>
 <shape 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <stroke
        android:width="1dp"
        android:color="@color/off_white"/>
 </shape>

2 个答案:

答案 0 :(得分:1)

在drawable中创建选择器文件。

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

      <item android:state_checked="true" 
           android:drawable="@drawable/check"\\ your drawable
           android:state_focused="false">
      </item>
      <item android:state_checked="true" 
            android:drawable="@drawable/check"\\your drawable
            android:state_focused="true">
      </item>
      <item android:state_checked="false" 
            android:drawable="@drawable/check"\\your drawable
            android:state_focused="false">
      </item>
      <item android:state_checked="false" 
            android:drawable="@drawable/check"\\your drawable
            android:state_focused="true">
      </item>
 </selector>

将以下内容添加到您的复选框属性中。

android:drawableLeft="@drawable/selector"

让我知道它是怎么回事。

答案 1 :(得分:1)

您需要为drawable

设置大小
<shape
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="rectangle">

   <size android:height="20dp" android:width="20dp"/>
   <stroke
    android:width="1dp"
    android:color="@color/off_white"/>
</shape>