Изменение цвета по умолчанию флажка 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" />