Использовать кнопочную кнопку Android 4.0
Что я пытаюсь сделать
Я пытаюсь использовать в моем макете Android 4.0 стиле togglebutton. Для этого я выбрал Theme = Theme.Holo.Light. Когда я возьму тумблер оттуда, его квадрат с зеленой линией, если кнопка включена.
Но я бы хотел использовать togglebutton, как они получили там конфигурацию сверху (посмотрите на печатный экран).
Вопрос
Как я могу использовать thise togglebutton? Некоторые Codesnippets или быстрый учебник были бы замечательными!
С наилучшими пожеланиями
Сафари
Фото
![screenshot of the togglebuttons]()
Ответы
Ответ 1
Новое редактирование: теперь я сделал полный обратный путь коммутатора обратно к уровню API 8 и включил github:
https://github.com/ankri/SwitchCompatLibrary
Старый пост с моей пользовательской реализацией Switch:
Я немного опаздываю на вечеринку, но у меня такая же проблема. Я взял исходный код с другого сообщения в этом thred и сделал свою собственную версию этого коммутатора.
Вы можете найти исходный код и документацию на моем веб-сайте
Это выглядит так:
![SwitchButtonDemo screenshot]()
изменить: обновленная ссылка и изображение
Ответ 2
UPDATE: новые изображения работают как на светлом, так и на темном фоне. Исходные изображения по-прежнему доступны.
Кроме того, как указывает кто-то в комментариях, обязательно сохраните их как "*.9.png", то есть "switch_on_on_db.9.png" и т.д.
Ответ Ankri велик, но очень тяжелый. Кроме того, он использует переключатели стиля 4.2, в отличие от более старых (и, на мой взгляд, более красивых) кнопок стиля 4.1. Для быстрого исправления, я сделал drawable, так что вы можете настроить ваш переключатель, чтобы он выглядел как переключатель.
Во-первых, вот стиль кнопки:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/switch_on_on_db" android:state_checked="true" android:state_pressed="true"/>
<item android:drawable="@drawable/switch_on_on_db" android:state_checked="true" android:state_focused="false"/>
<item android:drawable="@drawable/switch_off_off_db" android:state_checked="false" android:state_pressed="true"/>
<item android:drawable="@drawable/switch_off_off_db" android:state_checked="false" android:state_focused="false"/>
</selector>
которые относятся к этим изображениям:
![enter image description here]()
![enter image description here]()
Загрузите исходные изображения здесь:
Old Off
Старый вкл.
Наконец, вы можете настроить тумблер следующим образом:
<ToggleButton
android:id="@+id/ParamToggleButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/toggletoswitch"
android:textOff=""
android:textOn=""/>
UPDATE:
Теперь доступны версии Jelly Bean (хотя и не идентичные):
![enter image description here]()
![enter image description here]()
Old Off
Старый вкл.
Ответ 3
Если ваше приложение нацелено на api 14-го уровня или выше. Используйте виджет Switch и убедитесь, что ваша тема приложения - "Theme.Holo" или "Theme.Holo.Light"
Однако, если вы хотите настроить уровень api под номером 2.3, вам нужно создать собственный макет.
Я думаю, что это довольно грязно, чтобы объяснить об этом, я приведу вам пример.
Вы можете найти реальную реализацию кнопки "Switch" в здесь.
Ну, вы можете просто получить этот источник и добавить свой проект. У вас будет некоторая ошибка, но это не так сложно решить.
Ответ 4
Отличное решение выше... спасибо! (имя не указано?)
Я думал, что кто-то может использовать мой xml, который работал у меня, чтобы заставить togglebutton выглядеть как переключатель:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right|center_vertical"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_switchToggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dip"
android:layout_marginTop="0dip"
android:text="@string/shake_to_add"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#ffffff" />
<ToggleButton
android:id="@+id/switchToggle"
android:layout_width="75dp"
android:layout_height="20dp"
android:layout_margin="5dip"
android:background="@drawable/togglebutton"
android:textOff=""
android:textOn="" />
</LinearLayout>
@drawable/togglebutton относится к селектору, описанному выше. Еще раз спасибо!