279 votes

Comment changer la couleur d'une CheckBox ?

Comment changer la CheckBox dans Android ? Par défaut, la CheckBox est verte, et je veux changer cette couleur. Si ce n'est pas possible, merci de me dire comment faire un CheckBox ?

396voto

afathman Points 5034

Vous pouvez changer la couleur directement en XML. Utilisez buttonTint pour la box : (à partir du niveau d'API 23)

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

Vous pouvez également le faire en utilisant appCompatCheckbox v7 pour les anciens niveaux d'API :

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

139voto

Amro elaswar Points 1762

vous pouvez définir le thème Android de la case à cocher pour obtenir la couleur que vous voulez dans votre styles.xml ajouter :

 <style name="checkBoxStyle" parent="Base.Theme.AppCompat">
    <item name="colorAccent">CHECKEDHIGHLIGHTCOLOR</item>
    <item name="android:textColorSecondary">UNCHECKEDCOLOR</item>
</style>

puis dans votre fichier layout :

 <CheckBox
     android:theme="@style/checkBoxStyle"
     android:id="@+id/chooseItemCheckBox"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"/>

contrairement à l'utilisation de android:buttonTint="@color/CHECK_COLOR" cette méthode fonctionne sous Api 23

60voto

D. Sergeev Points 235

Utilisez buttonTint pour changer la couleur du bouton et du sélecteur de couleur pour les versions d'api ci-dessus 21+.

 <android.support.v7.widget.AppCompatCheckBox
                android:id="@+id/check"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:buttonTint="@color/checkbox_filter_tint"
                tools:targetApi="21"/>

res/couleurs/checkbox_filter_tint.xml

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/light_gray_checkbox"
          android:state_checked="false"/>
    <item android:color="@color/common_red"
          android:state_checked="true"/>
</selector>

50voto

mbonnin Points 273

Version programmatique :

 int states[][] = {{android.R.attr.state_checked}, {}};
int colors[] = {color_for_state_checked, color_for_state_normal}
CompoundButtonCompat.setButtonTintList(checkbox, new ColorStateList(states, colors));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X