Изменение цвета по умолчанию флажка Android CheckBox
Как изменить цвет по умолчанию флажка Android с зеленых флажков на синий для конкретного флажка?
2 ответов
к сожалению, изменение цвета не является простым атрибутом. Галочка-это изображение, поэтому необходимо создать пользовательское изображение. Взгляните на это пример
создайте 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-файл в своем . Затем внутри вашего файла макета примените его к своему флажку следующим образом:
<CheckBox
android:text="Custom CheckBox"
android:button="@drawable/checkbox_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
в этом примере вы бы назвали свой XML-файл селектора " checkbox_selector.xml", и вам понадобится star_down.png и звезда.png в папке drawables, а также. Вы можете использовать этот метод для создания различных цветных флажков, изменяя изображения системных флажков на любой цвет и ссылаясь на измененные png-файлы в селекторе.
это легко сделать в XML с помощью buttonTint
(начиная с уровня API 23):
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/COLOR_HERE" />
и, как отметил Николас, вы можете сделать это с помощью appCompatCheckbox v7
для старых API:
<android.support.v7.widget.AppCompatCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:buttonTint="@color/COLOR_HERE" />