Как я могу настроить Android-коммутатор?

Виджет коммутатора, представленный в API 14, по умолчанию задан голой темой. Я хочу немного поменять стиль, изменив его цвета и немного поработав по причинам брендинга. Как это можно сделать? Я знаю, что это должно быть возможно, поскольку ive видит разницу между ICS по умолчанию и темой Touchwiz от Samsung

Введите описание изображения здесь

Я предполагаю, что мне понадобятся некоторые штатные чертежи, и я видел несколько стилей в http://developer.android.com/reference/android/R.styleable.html с Switch_thumb и Switch_track, которые выглядят так, как я мог бы быть после , Я просто не знаю, как их использовать.

Я использую ActionbarSherlock, если это имеет значение. Разумеется, только устройства, работающие с API v14 или выше, смогут использовать коммутатор.

Вы можете определить чертежи, которые используются для фона, и часть переключателя, как это:

<Switch android:layout_width="wrap_content" android:layout_height="wrap_content" android:thumb="@drawable/switch_thumb" android:track="@drawable/switch_bg" /> 

Теперь вам нужно создать селектор, который определяет различные состояния для доступного переключателя. Здесь копии из 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> 

Это определяет максимально возможный перенос, изображение, которое перемещается по фону. Для слайдера используются четыре девятикратных изображения:

Деактивированная версия (версия xhdpi, используемая Android) Деактивированная версия
Прессованный слайдер: Прессованный слайдер
Активированный слайдер (по состоянию): Активированный слайдер
Версия по умолчанию (выключено): Введите описание изображения здесь

Для фона есть три разных состояния, которые определены в следующем селекторе:

 <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> 

Деактивированная версия: Деактивированная версия
Сфокусированная версия: Сфокусированная версия
И версия по умолчанию: Версия по умолчанию

Чтобы создать стильный переключатель, просто создайте эти два селектора, установите их в свой вид переключателя и затем смените семь изображений на нужный вам стиль.

Это удивительный подробный ответ Януша. Но только ради людей, которые приходят на эту страницу для ответов, более простой способ – это http://android-holo-colors.com/, связанный с Android Asset Studio

Хорошее описание всех инструментов доступно на AndroidOnRocks.com (теперь сайт отключен)

Тем не менее, я очень рекомендую всем прочитать ответ от Janusz, так как он станет более понятным. Используйте инструмент, чтобы делать вещи очень быстро

Альтернативный и гораздо более простой способ – использовать фигуры вместо 9-патчей. Это уже объяснено здесь: https://stackoverflow.com/a/24725831/512011