Możesz zdefiniować elementy rysunkowe używane jako tło i część przełącznika w następujący sposób:
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:thumb="@drawable/switch_thumb"
android:track="@drawable/switch_bg" />
Teraz musisz utworzyć selektor, który definiuje różne stany dla przełącznika do rysowania. Tutaj kopie ze źródeł Androida:
<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>
To definiuje kciuk do rysowania, obraz, który jest przesuwany po tle. Do suwaka używane są cztery obrazy z ninepatch :
Wersja dezaktywowana (wersja xhdpi, z której korzysta Android)
Wciśnięty suwak:
Aktywowany suwak (stan włączony):
Wersja domyślna (stan wyłączony):
Istnieją również trzy różne stany tła, które są zdefiniowane w następującym selektorze:
<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>
Wersja dezaktywowana:
Wersja skoncentrowana:
i wersja domyślna:
Aby mieć stylizowany przełącznik, po prostu utwórz te dwa selektory, ustaw je na swój widok przełączania, a następnie zmień siedem obrazów na żądany styl.