Подтвердить что ты не робот

Использовать кнопочную кнопку Android 4.0

Что я пытаюсь сделать


Я пытаюсь использовать в моем макете Android 4.0 стиле togglebutton. Для этого я выбрал Theme = Theme.Holo.Light. Когда я возьму тумблер оттуда, его квадрат с зеленой линией, если кнопка включена.

Но я бы хотел использовать togglebutton, как они получили там конфигурацию сверху (посмотрите на печатный экран).

Вопрос


Как я могу использовать thise togglebutton? Некоторые Codesnippets или быстрый учебник были бы замечательными!

С наилучшими пожеланиями

Сафари

Фото


screenshot of the togglebuttons

4b9b3361

Ответ 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 hereenter 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 hereenter 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 относится к селектору, описанному выше. Еще раз спасибо!