Как я могу настроить Android-коммутатор?
Виджет коммутатора, введенный в API 14, по умолчанию задан голой темой.
Я хочу немного поменять стиль, изменив его цвета и немного поработав по причинам брендинга. Как это можно сделать? Я знаю, что это должно быть возможно, поскольку ive видел разницу между стандартом ICS и темой Samsung touchwiz
![enter image description here]()
Я предполагаю, что мне понадобятся некоторые штатные чертежи, и я видел несколько стилей в http://developer.android.com/reference/android/R.styleable.html с Switch_thumb и Switch_track, которые выглядят так, как я мог бы быть после. Я просто не знаю, как их использовать.
Я использую ActionbarSherlock, если это имеет значение. Разумеется, только устройства, работающие с API v14 или выше, смогут использовать коммутатор.
Ответы
Ответ 1
Вы можете определить чертежи, которые используются для фона, и часть переключателя, как это:
<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>
Это определяет максимальный размер, который перемещается по фону. Для слайдера используются четыре изображения ninepatch:
Деактивированная версия (версия xhdpi, которую использует Android) ![The deactivated version]()
Прессованный слайдер: ![The pressed slider]()
Активированный слайдер (в состоянии): ![The activated slider]()
Версия по умолчанию (выключено): ![enter image description here]()
Существуют три разных состояния для фона, которые определены в следующем селекторе:
<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>
Деактивированная версия: ![The deactivated version]()
Сфокусированная версия: ![The focused version]()
И версия по умолчанию: ![the default version]()
Чтобы создать стильный переключатель, просто создайте эти два селектора, установите их в свой вид переключателя и затем смените семь изображений на нужный вам стиль.
Ответ 2
Это удивительный подробный ответ Януша. Но только ради людей, которые приходят на эту страницу для ответов, более простой способ - http://android-holo-colors.com/ (мертвая ссылка), связанная с Android Asset Studio
Хорошее описание всех инструментов находится в AndroidOnRocks.com (теперь сайт отключен)
Тем не менее, я очень рекомендую всем прочитать ответ от Janusz, так как он станет более понятным. Используйте инструмент, чтобы быстро делать вещи.
Ответ 3
Альтернативный и гораздо более простой способ - использовать фигуры вместо 9-патчей.
Это уже объяснено здесь:
fooobar.com/questions/52437/...
Ответ 4
Вы можете настроить стили материалов, установив разные цветовые свойства.
Например <специальная тема
<style name="CustomAppTheme" parent="Theme.AppCompat">
<item name="android:textColorPrimaryDisableOnly">#00838f</item>
<item name="colorAccent">#e91e63</item>
</style>
Пользовательская тема переключения
<style name="MySwitch" parent="@style/Widget.AppCompat.CompoundButton.Switch">
<item name="android:textColorPrimaryDisableOnly">#b71c1c</item>
<item name="android:colorControlActivated">#1b5e20</item>
<item name="android:colorForeground">#f57f17</item>
<item name="android:textAppearance">@style/TextAppearance.AppCompat</item>
</style>
Вы можете настроить дорожку переключателя и переместить большой палец, как показано ниже, указав xml drawables. Для получения дополнительной информации http://www.zoftino.com/android-switch-button-and-custom-switch-examples
![настраиваемая дорожка переключения и большой палец]()