如何更改复选框的颜色?

新手上路,请多包涵

如何更改Android中的默认 CheckBox 颜色?

默认情况下 CheckBox 颜色是绿色的,我想改变这个颜色。

如果不可能,请告诉我如何定制 CheckBox

原文由 Piyush 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 898
2 个回答

如果您的 minSdkVersion 是 21+,请使用 android:buttonTint 属性来更新复选框的颜色:

 <CheckBox
  ...
  android:buttonTint="@color/tint_color" />

在使用 AppCompat 库并支持低于 21 的 Android 版本的项目中,您可以使用 buttonTint 属性的兼容版本:

 <CheckBox
  ...
  app:buttonTint="@color/tint_color" />

在这种情况下,如果你想继承一个 CheckBox 不要忘记使用 AppCompatCheckBox 代替。

以前的答案:

您可以使用 android:button="@drawable/your_check_drawable" 属性更改 CheckBox s drawable。

原文由 Michael 发布,翻译遵循 CC BY-SA 4.0 许可协议

我更喜欢我创建的这个扩展函数:

 fun CheckBox.setTint(@ColorInt color: Int?) {
    if (color == null) {
        CompoundButtonCompat.setButtonTintList(this, null)
        return
    }
    CompoundButtonCompat.setButtonTintMode(this, Mode.SRC_ATOP)
    CompoundButtonCompat.setButtonTintList(this, ColorStateList.valueOf(color))
}

它与我为 ImageView 所拥有的非常相似,以防万一有人也想要它:

 fun ImageView.setTint(@ColorInt color: Int?) {
    if (color == null) {
        ImageViewCompat.setImageTintList(this, null)
        return
    }
    ImageViewCompat.setImageTintMode(this, Mode.SRC_ATOP)
    ImageViewCompat.setImageTintList(this, ColorStateList.valueOf(color))
}

原文由 android developer 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题