2011-10-05 236 views
12

我试图使用XML文件更改切换按钮的背景颜色为白色,但切换按钮已完全损坏。它看起来像所有的按钮都被白色覆盖。如何更改Android上的切换按钮的背景颜色

当我将切换按钮的颜色更改为白色时,切换按钮上没有ON或OFF指示。是否有另一种方法来改变不会损坏切换按钮指示的背景?

<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代码如何查找切换按钮。

+1

向我们展示您的尝试。一般来说,您需要使用[颜色状态列表](http://developer.android.com/guide/topics/resources/color-list-resource.html)或[可绘制状态列表](http:// developer。 android.com/guide/topics/resources/drawable-resource.html#StateList)来完成你所描述的内容。 –

回答

13

是的,有改变的背景如你所愿的方式,但你必须使用一个选择这样的背景:

<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等(可以使用一种颜色或。做一个梯度检查this有关渐变的详细信息

+0

感谢您的代码和教程 – padmi

-13

当你编译你SystemUI.apk,你应该去以下文件:SystemUI/RES /价值/ colors.xml

然后更改以下行:

#FF000000 #FFFFFFFF #8000# ffadc1d6 #FFFFFFFF #ffe6e6e6

+0

必须有一个更简单的方法来做到这一点? –

+1

不要这样做。 – ZirconCode

1

按照此方法,使您ToogleButton具有背景色红时,绿灯亮时OFF

第一个,在可绘制文件夹中创建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 
      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

你能帮忙吗? http://stackoverflow.com/questions/39772456/change-togglebutton-color – John