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

Cod*_*oid 13 android android-widget android-layout

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

Hex*_*ugs 22

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

创建一个选择器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>
Run Code Online (Sandbox Code Playgroud)

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

<CheckBox
    android:text="Custom CheckBox"
    android:button="@drawable/checkbox_selector"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)

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


afa*_*man 6

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

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:buttonTint="@color/COLOR_HERE" />
Run Code Online (Sandbox Code Playgroud)

正如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" /> 
Run Code Online (Sandbox Code Playgroud)

  • 你可以使用appcompat和`<android.support.v7.widget.AppCompatCheckBox android:layout_width ="wrap_content"android:layout_height ="wrap_content"app:buttonTint ="@ color/COLOR_HERE"/>来执行API级别7 (2认同)