Изменение цвета по умолчанию для Check Check Check Check Check Check Check Check Check Check

Как изменить флажок по умолчанию для экрана Android с зелеными галочками на синий для определенного CheckBox?

Ответ 1

К сожалению, изменение цвета не является простым атрибутом. Флажок - это изображение, поэтому вам нужно создать собственный образ. Взгляните на этот пример

Создайте 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 файл в папке res\drawables\. Затем внутри вашего файла макета примените его к вашему checkBox следующим образом:

<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 и star.png в вашей папке drawables. Вы можете использовать эту технику для создания разных цветных флажков, изменив изображения в системе на любой цвет и ссылаясь на измененные png файлы в селекторе.

Ответ 2

Это легко сделать в xml, используя buttonTint (начиная с уровня API 23):

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:buttonTint="@color/COLOR_HERE" />

и, как отметил Nicolás, вы можете сделать это, используя appCompatCheckbox v7 для более старых API:

<android.support.v7.widget.AppCompatCheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:buttonTint="@color/COLOR_HERE" />