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

Posted

技术标签:

【中文标题】更改 Android CheckBox 复选标记的默认颜色【英文标题】:Changing Default Color of Android CheckBox Check Mark 【发布时间】:2012-07-03 09:13:11 【问题描述】:

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

【问题讨论】:

好像是this question的副本。 不同的是这个问题有一个真实而新的答案。 How to change the color of a CheckBox?的可能重复 【参考方案1】:

不幸的是,改变颜色并不是一个简单的属性。复选标记是图像,因此您必须创建自定义图像。看看这个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
    android:text="Custom CheckBox"
    android:button="@drawable/checkbox_selector"
    android:layout_
    android:layout_/>

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

【讨论】:

虽然您链接的示例是一个很好的示例。值得注意的是,链接确实失效了,通常在带有链接的答案中,您也希望从链接中发布相关内容。由于此答案将存在很长时间,因此如果链接已腐烂,将来对人们将变得毫无用处。现在它仍然会帮助他们实现他们所追求的目标。【参考方案2】:

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

<CheckBox
    android:layout_
    android:layout_
    android:buttonTint="@color/COLOR_HERE" />

正如 Nicolás 指出的那样,您可以对旧 API 使用 appCompatCheckbox v7

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

【讨论】:

您可以使用 appcompat 和 &lt;android.support.v7.widget.AppCompatCheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" app:buttonTint="@color/COLOR_HERE" /&gt; 从 API 级别 7 开始执行此操作 在这种情况下禁用的复选框保持明亮,不要将颜色更改为灰色 使用HexAndBugs的答案

以上是关于更改 Android CheckBox 复选标记的默认颜色的主要内容,如果未能解决你的问题,请参考以下文章

Android版本:如何更改复选框的大小

如何更改复选框的颜色?

CSS/HTML:如何更改复选框输入中复选标记的颜色? [复制]

如何更改 HTML 中复选框的选中标记颜色? [复制]

单击列表项更改复选框状态?

识别默认的 Android Checkbox 动画何时结束