14

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

4

2 回答 2

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>

将此 xml 文件保存在您的res\drawables\文件夹中。然后在您的布局文件中将其应用于您的复选框,如下所示:

<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 文件来创建不同颜色的复选框。

于 2012-07-02T23:30:17.780 回答
8

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

<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" /> 
于 2015-11-20T19:18:35.343 回答