Я разрабатываю приложение для 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));
Ответ Криса Стиллвелла дал мне идею попробовать это, поскольку я не мог просто установить цвет, используя атрибуты. :)