È possibile definire i drawable che vengono utilizzati per lo sfondo e la parte dello switcher in questo modo:
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:thumb="@drawable/switch_thumb"
android:track="@drawable/switch_bg" />
Ora è necessario creare un selettore che definisca i diversi stati per lo switcher disegnabile. Ecco le copie dalle fonti Android:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/switch_thumb_disabled_holo_light" />
<item android:state_pressed="true" android:drawable="@drawable/switch_thumb_pressed_holo_light" />
<item android:state_checked="true" android:drawable="@drawable/switch_thumb_activated_holo_light" />
<item android:drawable="@drawable/switch_thumb_holo_light" />
</selector>
Questo definisce il thumb drawable, l'immagine che viene spostata sullo sfondo. Ci sono quattro nove immagini di patch usate per il cursore:
La versione disattivata (versione xhdpi utilizzata da Android)
Lo slider premuto:
Lo slider attivato (in stato):
La versione predefinita (stato spento):
Esistono anche tre diversi stati per lo sfondo definiti nel selettore seguente:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/switch_bg_disabled_holo_dark" />
<item android:state_focused="true" android:drawable="@drawable/switch_bg_focused_holo_dark" />
<item android:drawable="@drawable/switch_bg_holo_dark" />
</selector>
La versione disattivata:
La versione focalizzata:
E la versione predefinita:
Per avere un interruttore con stile, basta creare questi due selettori, impostarli su Cambia visualizzazione e quindi modificare le sette immagini nello stile desiderato.