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.
To niesamowita szczegółowa odpowiedź Janusza. Ale tylko ze względu na ludzi, którzy przychodzą na tę stronę w poszukiwaniu odpowiedzi, łatwiejszym sposobem jest http://android-holo-colors.com/ (martwy link) link z Android Asset Studio
Dobry opis wszystkich narzędzi znajduje się na AndroidOnRocks.com (strona jest teraz offline)
Jednak gorąco polecam wszystkim przeczytanie odpowiedzi Janusza, ponieważ ułatwi to zrozumienie. Użyj narzędzia, aby zrobić rzeczy naprawdę szybko
źródło
Możesz dostosować style materiałów, ustawiając różne właściwości kolorów. Na przykład niestandardowy motyw aplikacji
Niestandardowy motyw przełącznika
Możesz dostosować ścieżkę przełączania i przełącznik kciukowy, jak na poniższym obrazku, definiując elementy XML do rysowania. Aby uzyskać więcej informacji, http://www.zoftino.com/android-switch-button-and-custom-switch-examples
źródło
Alternatywnym i znacznie łatwiejszym sposobem jest użycie kształtów zamiast 9-plastrów. Zostało to już wyjaśnione tutaj: https://stackoverflow.com/a/24725831/512011
źródło