更改Android CheckBox复选标记的默认颜色

时间:2012-07-02 23:15:06

标签: android android-layout android-widget

如何将特定CheckBox的Android复选框的默认颜色从绿色复选标记更改为蓝色?

2 个答案:

答案 0 :(得分:22)

不幸的是,更改颜色不是一个简单的属性。选中标记是图像,因此您必须创建自定义图像。看一下这个example

创建一个选择器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="@drawable/star_down" />
    <item android:state_checked="false" android:drawable="@drawable/star" />
</selector>

将此xml文件保存在res\drawables\文件夹中。然后在布局文件中将它应用到您的checkBox,如下所示:

<CheckBox
    android:text="Custom CheckBox"
    android:button="@drawable/checkbox_selector"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

在此示例中,您将选择器xml文件命名为“checkbox_selector.xml”,并且您还需要在drawables文件夹中使用star_down.png和star.png。您可以使用此技术创建不同颜色的复选框,方法是将系统复选框图像更改为您想要的任何颜色,并在选择器中引用已更改的png文件。

答案 1 :(得分:6)

使用buttonTint(从API级别23开始)在xml中很容易做到:

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:buttonTint="@color/COLOR_HERE" />

正如Nicolás指出的那样,您可以使用appCompatCheckbox v7为旧版API执行此操作:

<android.support.v7.widget.AppCompatCheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:buttonTint="@color/COLOR_HERE" />