Cómo cambiar el color de fondo del botón de alternar en Android

Intenté cambiar el color de fondo del botón del interruptor usando el archivo de XML como color blanco, pero el botón del toggle está totalmente dañado. Parece que todo el botón estaba cubierto de blanco.

No hay ninguna indicación de encendido o apagado en el botón de conmutación cuando he cambiado el color del botón de conmutación a blanco. ¿Hay otra manera de cambiar el fondo que no dañará la indicación del botón del interruptor?

<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 conmutación.

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. (puede usar un color o hacer un degradado.) Compruebe esto para obtener más información acerca de los degradados.

Siga esta manera para que su ToogleButton tenga el color de fondo rojo cuando está encendido y verde cuando está desactivado

Primero , cree tooglebutton_selector.xml en una carpeta 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> 

En segundo lugar , crear togglebutton_on.xml en la carpeta 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> 

En tercer lugar , crear togglebutton_off.xml en la carpeta 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> 

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

Cuando descompila su SystemUI.apk, debe ir al siguiente archivo: SystemUI / res / values ​​/ colors.xml

A continuación, cambie la línea siguiente:

# Ff000000 #ffffffff # 80000000 # ffadc1d6 #ffffffff # ffe6e6e6

  • Cambio de estado ToggleButton programáticamente en lugar de automáticamente en Android?
  • Eliminación de la luz indicadora verde de ToggleButton de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.