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

Я предполагаю, что мне понадобятся некоторые государственные чертежи, и я видел несколько стилей в http://developer.android.com/reference/android/R.styleable.html С Switch_thumb и Switch_track, которые выглядят как то, что я мог бы быть после. Я просто не знаю, как их использовать.
Я использую ActionbarSherlock, если это имеет значение. Конечно, только устройства, работающие с API v14 или выше, смогут использовать коммутатор вообще.
4 ответов:
вы можете определить чертежи, которые используются для фона, и часть переключателя следующим образом:
<Switch android:layout_width="wrap_content" android:layout_height="wrap_content" android:thumb="@drawable/switch_thumb" android:track="@drawable/switch_bg" />Теперь вам нужно создать селектор, который определяет различные состояния для переключателя drawable. Вот копии из источников 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>это определяет большой палец drawable, изображение, которое перемещается по фону. Есть четыре ninepatch изображения для слайдера:
деактивированная версия (xhdpi версия, которую использует Android)
Нажатый ползунок:
Активированный ползунок (в состоянии on):
Версия по умолчанию (выключено):есть также три различных состояния для фона, которые определены в следующем селекторе:
<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 (сайт отключен сейчас)
тем не менее, я настоятельно рекомендую всем прочитать ответ от Януша, поскольку это сделает понимание более ясным. Используйте инструмент, чтобы сделать питания очень быстро
вы можете настроить стили материала, установив различные свойства цвета. Например пользовательские темы приложения
<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-чертежи. За дополнительной информацией http://www.zoftino.com/android-switch-button-and-custom-switch-examples
альтернативный и гораздо более простой способ-использовать фигуры вместо 9-патчей. Это уже объясняется здесь: https://stackoverflow.com/a/24725831/512011








Comments