Фон моего фреймворка указан с помощью выделенного xml, и я хочу изменить цвет этих элементов с помощью кода. У другого управления в Android, похоже, есть разные способы установить свой цвет.Как изменить цвет рамки, указанной в xml?
<Checkbox android:button="@drawable/custom_checkbox" />
В растяжимой/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);
Возможный дубликат [Android, TabLayout значок цвет не изменяется при перемещении] (HTTP: // StackOverflow. com/questions/39475790/android-tablayout-icon-color-doesnt-change-when-dragging) –
Я не верю, что это дубликат. Я спрашиваю о флажке, а не вкладке. Решение также имеет слой-список в своем примере, которого я не знаю. – Boon
Да, это так. Принятый ответ в этом потоке показывает, как отображать состояние, доступное на всех уровнях API. –