È possibile definire i drawable che vengono utilizzati per lo sfondo, e la parte switcher come questo:
<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 definisce i diversi stati per drawable switcher. Qui le copie dalle sorgenti 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>
Definisce drawable pollice, l'immagine che si muove sullo sfondo. Ci sono quattro ninepatch immagini utilizzate per il cursore:
La versione disattivato (versione xhdpi che Android sta usando)
Il cursore premuto:
Il cursore attivato (dallo stato):
La versione di default (stato off):
Esistono inoltre tre stati diversi per lo sfondo che sono definiti nel seguente selettore:
<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 disattivato:
La versione concentrata:
E la versione di default:
Per avere un interruttore di stile basta creare questa due selettori, cosa impostare la Switch View e quindi modificare le sette immagini al tuo stile desiderato
molto dettagliate grazie, le immagini di scorrimento a 9 di patch che consentono una parte del movimento del pollice fuori dalla pista era particolarmente utile come non ho potuto capire come stavano facendo questo. (il cursore predefinito ha i bit del bordo appuntito che si spostano oltre la fine della traccia per creare una estremità quadrata su un lato) –
Ottimo lavoro - molto dettagliato – Ahmad
C'è uno stato in più- che può cambiare l'immagine della traccia quando lo switch è nello stato "on". quindi se vuoi cambiare la traccia su "on"/"off", usa questo stato. –
narangrajeev81