Как изменить галочку флажка в андроиде

Я разрабатываю приложение для Android. Я использую флажок, но по умолчанию флажок галочка цвет синий, поэтому я хочу изменить этот цвет на желтый. есть ли встроенное свойство для установки цвета для галочки.

Ответ 1

К сожалению, изменение цвета флажка флажка не является простым атрибутом

Создайте XML файл селектора в папке res\drawables\ с именем cb_selector.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>

В вашем файле макета примените этот файл к вашему чеку

<CheckBox
    android:id="@+id/cb"
    android:text="My CheckBox"
    android:button="@drawable/cb_selector"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

Добавьте unchecked.png и checked.png в папку drawables. Это проверенные и непроверенные изображения флажка.

Ответ 2

Вы можете сделать это, не изменяя drawable с помощью buttonTint (по API 23):

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

или используйте AppCombatCheckBox для более старых версий android/совместимость.

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

Ответ 3

Вы можете использовать атрибут app:buttonTint для AppCompatCheckBox в библиотеке android.support.v7.

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

Преимущество: работает также ниже API 21, и вам не нужно перерисовывать флажок.

Ответ 4

По API 21 вы можете использовать атрибут Button Tint

android:buttonTint="#FFFF00"

Ответ 5

Перейдите в styles.xml и добавьте эту строку.

<style>
<item name="colorAccent">@android:color/holo_green_dark</item> 
</style>

с помощью этого вы можете изменить цвет или установить другой цвет

Ответ 6

Используйте специальный переключатель для этого флажка.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/patch_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/patch_normal" android:state_enabled="true"/>
    <item android:drawable="@drawable/patchdisable" android:state_enabled="false"/>


</selector>

Как это.

Ответ 7

Для тех, кто все еще ищет ответ (я знаю, что это старый вопрос) - я нашел, что это решение хорошо работает, не беспокоясь об API: fooobar.com/questions/384347/...

Вкратце: создайте стиль для флажка, например, checkboxStyle а затем реализуйте его как тему: android:theme="@style/checkboxStyle"

Ответ 8

Если вы хотите сделать это программно, то вы просто делаете это:

final CheckBox cb = new CheckBox(getApplicationContext());
cb.setButtonTintList(getColorStateList(R.color.colorAccent));

Ответ Криса Стиллвелла дал мне идею попробовать это, поскольку я не мог просто установить цвет, используя атрибуты. :)