如何更改Android上切换按钮的背景色

如何更改Android上切换按钮的背景色,android,togglebutton,Android,Togglebutton,我尝试使用XML文件将切换按钮的背景色更改为白色,但切换按钮完全损坏。看起来所有的纽扣都是白色的 当我将切换按钮的颜色更改为白色时,切换按钮上没有打开或关闭的指示。是否有其他方法可以改变背景,而不会损坏切换按钮的指示 <ToggleButton android:id="@+id/togglebutton" android:layout_width="100px" android:layout_height="46px"

我尝试使用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代码寻找切换按钮的方式。

是的,有一种方法可以根据需要更改背景,但必须使用如下选择器作为背景:

<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等(您可以使用颜色或进行渐变。查看有关渐变的更多信息。

当您反编译SystemUI.apk时,应转到以下文件:SystemUI/res/values/colors.xml

然后更改以下行:

#ff000000 #ffffffff #80000000 #ffadc1d6 #ffffffff #FFE6E6


按照此方法使
ToogleButton
的背景色在打开时为红色,在关闭时为绿色

首先,在drawable文件夹中创建
tooglebutton\u 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>
<?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>
<?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>
第三个,在drawable文件夹中创建
togglebutton_off.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>
<?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>
<?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
            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
            />


向我们展示您的尝试。通常情况下,您需要使用a或a来完成所描述的操作。一定有更简单的方法来完成此操作?这是我见过的最不寻常的解决方案。)您能帮忙吗?有用的答案,但根据我自己的经验,没有必要创建togglebutton_on.xml/togglebutton_off.xml如果您只想更改颜色,可以直接将颜色资源作为选择器项的参数传递