2011-10-05 26 views
12

He intentado cambiar el color de fondo del botón de alternar utilizando el archivo XML como color blanco, pero el botón de alternar está totalmente dañado. Parece que todo el botón estaba cubierto de blanco.Cómo cambiar el color de fondo del botón de alternar en Android

No hay indicación de ON u OFF en el botón de alternar cuando he cambiado el color del botón de alternar a blanco. ¿Hay otra forma de cambiar el fondo que no dañe la indicación del botón de alternar?

<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" /> 

Así es como mi código XML busca el botón de alternar.

+1

Muéstranos lo que probó. Por lo general, debe usar una [lista de estados de colores] (http://developer.android.com/guide/topics/resources/color-list-resource.html) o una [lista de estados dibujables] (http: // developer. android.com/guide/topics/resources/drawable-resource.html#StateList) para hacer lo que está describiendo. –

Respuesta

13

Sí, hay una manera de cambiar el fondo como usted desea, pero usted tiene que utilizar un selector como esto como fondo:

<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> 

Para @Drawable, etc (se puede utilizar un color o .. hacer un gradiente Compruebe this para obtener más información sobre los gradientes

+0

gracias por el código y el tutorial – padmi

-13

Cuando descompilar el SystemUI.apk, usted debe ir al siguiente archivo: SystemUI/res/valores/colors.xml

continuación, cambie la línea siguiente :

# ff000000 #FFFFFFFF # 80000000 # ffadc1d6 #FFFFFFFF # ffe6e6e6

+0

Debe haber una manera más fácil de hacer esto? –

+1

No hagas esto. – ZirconCode

1

Sigue esta manera de hacer su ToogleButton tienen rojo color de fondo cuando en cuando y verde apagado

Primero, cree tooglebutton_selector.xml en la carpeta dibujable

<?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> 

Segunda, crear togglebutton_on.xml en la carpeta dibujable

<?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> 

Tercer, crear togglebutton_off.xml en la carpeta dibujable

<?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> 

Finalmente, en su 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

¿Puedes ayudar? http://stackoverflow.com/questions/39772456/change-togglebutton-color – John

Cuestiones relacionadas