复选框重音未选中复选框

时间:2015-06-21 20:16:15

标签: android material-design

问题

有没有办法为默认的未选中复选框颜色着色?这是现在的状态:

current state

我希望UNCHECKED复选框具有重音颜色(在我的情况下为蓝色),因为它在选中的变体中。

我的配置

compile 'com.android.support:appcompat-v7:22.0.0'

<item name="colorAccent">@color/accent</item>

1 个答案:

答案 0 :(得分:2)

您可以显示任意形状和颜色的复选框。

添加一个可绘制的custom_checkbox.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="@xml/checked" /> 
<item android:state_pressed="true"
      android:drawable="@xml/checked" /> 
<item android:drawable="@xml/unchecked" /> 
</selector>

现在您可以指定checkedunchecked的外观:

checked.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- set whatever color you like -->
<stroke android:width="2px" android:color="@color/accent" />
<size android:height="20dp" android:width="20dp"/>
</shape>

unchecked.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2px" android:color="#ffc0c0c0" />
<size android:height="20dp" android:width="20dp"/>
</shape>

现在,您可以将复选框的android:button属性设置为@drawable/custom_checkbox,您应该会看到自己的彩色复选框!

代码基于this answer