Фон моего флажка указан с помощью 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);