Je développe une application Android dans laquelle j'utilise la case à cocher, mais la case à cocher par défaut de la case à cocher est bleue; je souhaite donc changer cette couleur en jaune. existe-t-il une propriété intégrée pour définir la couleur sur la case à cocher?.
Malheureusement, changer la couleur de la case à cocher n'est pas un simple attribut
Créez un fichier XML de sélecteur dans le dossier res\drawables\
avec le nom 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>
Dans votre fichier de mise en page, appliquez ce fichier à votre checkBox.
<CheckBox
Android:id="@+id/cb"
Android:text="My CheckBox"
Android:button="@drawable/cb_selector"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"/>
Ajoutez un unchecked.png
et un checked.png
dans votre dossier drawables
. Celles-ci sont cochées et non cochées image de case à cocher.
Vous pouvez le faire sans changer le dessin à l’aide de buttonTint (à partir de l’API 23):
<CheckBox
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:buttonTint="@color/CHECKMARK_COLOR_HERE" />
ou utilisez AppCombatCheckBox pour les anciennes versions d'Android/compatibilité.
<Android.support.v7.widget.AppCompatCheckBox
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:buttonTint="@color/CHECKMARK_COLOR_HERE" />
Vous pouvez utiliser l'attribut app:buttonTint
de la AppCompatCheckBox
de la bibliothèque Android.support.v7.
<Android.support.v7.widget.AppCompatCheckBox
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:buttonTint="@color/colorAccent"/>
Avantage: fonctionne également sous l'API 21 et vous n'avez pas besoin de redessiner la case à cocher.
A partir de l'API 21, vous pouvez utiliser l'attribut Button Tint.
Android:buttonTint="#FFFF00"
Allez à styles.xml et ajoutez cette ligne.
<style>
<item name="colorAccent">@Android:color/holo_green_dark</item>
</style>
en utilisant cela, vous pouvez changer de couleur ou définir une couleur différente
Pour ceux qui cherchent encore une réponse (je sais que c'est une question plus ancienne) - J'ai trouvé cette solution qui fonctionne bien sans avoir à vous soucier de l'API: https://stackoverflow.com/a/31840734/7601437
En bref: créez un style pour la case à cocher, par exemple checkboxStyle
puis l'implémenter en tant que thème: Android:theme="@style/checkboxStyle"
Utilisez le sélecteur personnalisé pour la case à cocher.
<?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>
Comme ça.