我的Checkbox的背景是通过drawable xml指定的,我想通过代码更改这些项目的颜色。 Android中的不同控件似乎有不同的方式来设置其颜色。
<Checkbox android:button="@drawable/custom_checkbox" />
在drawable / custom_checkbox.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/checked" />
<item android:state_checked="false" android:drawable="@drawable/unchecked" />
</selector>
关于SO的大多数答案都停留在上面的解决方案中。我可以通过以下代码更改颜色,但此代码在某些API级别(例如级别17)中不起作用。我想要一些全面运作的东西。
Drawable d = DrawableCompat.wrap(checkbox.getBackground());
DrawableCompat.setTint(d, newColor);
答案 0 :(得分:0)
也许this会帮助你。
我认为:android:buttonTint="@color/mybrown"
是一种简单的方式
答案 1 :(得分:0)
试试这个:
Drawable d = DrawableCompat.wrap(checkbox.getBackground());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
DrawableCompat.setTint(d, newColor);
} else {
d.mutate().setColorFilter(newColor, PorterDuff.Mode.SRC_IN);
}