Как изменить цвет фона кнопки переключения на Android - PullRequest
13 голосов
/ 05 октября 2011

Я пытался изменить цвет фона кнопки переключения, используя файл XML в качестве белого цвета, но кнопка переключения полностью повреждена.Похоже, что вся кнопка была покрыта белым.

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

<ToggleButton android:id="@+id/togglebutton"
              android:layout_width="100px"
              android:layout_height="46px"
              android:background="#ffffff"
              android:layout_above ="@+id/save"
              android:textOn="DAY"
              android:textOff="NIGHT" />

Вот как мой XML-код выглядит для кнопки переключения.

Ответы [ 3 ]

14 голосов
/ 05 октября 2011

Да, есть способ изменить фон, как вы хотите, но вы должны использовать селектор, как этот, в качестве фона:

<selector
    xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
    android:state_focused="true"
    android:state_pressed="false"
    android:drawable="@drawable/some_image" />
<item
    android:state_focused="true"
    android:state_pressed="true"
    android:drawable="@drawable/some_other_image" />
<item
    android:state_focused="false"
    android:state_pressed="false"
    android:drawable="@drawable/some_image1" />
<item
    android:state_focused="false"
    android:state_pressed="true"
    android:drawable="@drawable/other_image" />
</selector>

Для @Drawable и т. Д. (Вы можете использовать цвет или сделать градиент. Проверьте это для получения дополнительной информации о градиентах.

3 голосов
/ 14 августа 2016

Следуйте этому пути, чтобы ваш ToogleButton имел красный фон, когда он включен, и зеленый, когда он выключен

Первый , создайте tooglebutton_selector.xml в папке для рисования

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/togglebutton_on"
        android:state_checked="true" />
    <item android:drawable="@drawable/togglebutton_off"
        android:state_checked="false"
        />
</selector>

Второй , создать togglebutton_on.xml в папке для рисования

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid
        android:color="#ff0000" /> // red color
</shape>

Третий , создать togglebutton_off.xml в папке для рисования

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid
        android:color="#00FF00" /> // green color
</shape>

Наконец , в вашей ToggleButton

 <ToggleButton
            android:id="@+id/btnMon"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/tooglebutton_selector" //set background of ToggleButton to tooglebutton_selector
            />
0 голосов
/ 10 июля 2013

Когда вы декомпилируете ваш SystemUI.apk, вы должны перейти к следующему файлу: SystemUI / res / values ​​/ colors.xml

Затем измените следующую строку:

# ff000000 #ffffffff # 80000000 # ffadc1d6 #ffffffff # ffe6e6e6

...