J'essaie de changer la couleur de mon commutateur dans Android. Je me rends compte que j'aurai besoin de nouveaux 9patches. Je suis allé sur http://Android-holo-colors.com/ et j'ai sélectionné ma couleur et sélectionné (Switch Jelly bean). Pour utiliser Switch Jelly bean, j'ai dû utiliser: https://github.com/BoD/Android-switch-backport . Pour l'importer dans mon projet j'ai dû ajouter:
<item name="switchStyle">@style/Widget.Holo.CompoundButton.Switch</item>
à mes styles, puis en xml je dois utiliser le commutateur comme ceci:
<org.jraf.Android.backport.switchwidget.Switch
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
Maintenant, tout avec le commutateur fonctionne bien. Ensuite, j'ai pris tout ce qui était sorti du générateur de couleurs holo Android et je l'ai mis dans les fichiers appropriés:
puis j'ai ajouté à mon xml:
<org.jraf.Android.backport.switchwidget.Switch
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:thumb="@drawable/apptheme_switch_inner_holo_light"
Android:track="@drawable/apptheme_switch_track_holo_light" />
mais c'est toujours la couleur bleue d'origine. Je crois que je fais tout correctement. Tout se compile (xml, Java). Remarque: J'IMPORTE org.jraf.Android.backport.switchwidget.Switch
dans mon Java aussi. Des idées?
Selon ceci , (réponse directe par copier-coller BoD):
Vous ne devez pas utiliser Android:thumb
et Android:track
, mais plutôt, app:thumb
et app:track
Et vous devez ajouter ce qui suit à la racine de votre document xml:
xmlns:app="http://schemas.Android.com/apk/res-auto"
Moyen le plus simple dans Android Lollipop et au-dessus,
<style name="AppTheme" parent="MaterialTheme.Light">
...
<item name="Android:colorControlActivated">@color/color_switch</item>
</style>
pour changer la couleur du commutateur, vous pouvez utiliser deux images
maintenant mettez ce fichier dans un dossier dessinable
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:drawable="@drawable/blue_checked" Android:state_checked="true"/>
<item Android:drawable="@drawable/blue_unchecked" Android:state_checked="false"/>
</selector>
et dans le fichier XML de mise en page, utilisez-le comme ci-dessous
<CheckBox
Android:id="@+id/user_checkbox"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:button="@drawable/notif_checkbox_selector"
/>
Essaye ça:
switch_thumb.xml
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_enabled="false" Android:drawable="@drawable/switch_thumb_holo_light" />
<item Android:state_pressed="true" Android:drawable="@drawable/switch_thumb_activated_holo_light" />
<item Android:state_checked="true" Android:drawable="@drawable/switch_thumb_activated_holo_light" />
<item Android:drawable="@drawable/switch_thumb_holo_light" />
</selector>
Dans la disposition du commutateur:
Android:thumb="@drawable/switch_thumb"
Il se peut que vous deviez mettre
style="@style/switchStyle"
dans votre XML aussi