Pantalla personalizada de botón de conmutación de Android

He estado tratando de personalizar la apariencia del botón de conmutación, pero sin éxito. Aquí es cómo quiero que parezca:

Introduzca aquí la descripción de la imagen

¿Puede alguien darme un tutorial?

4 Solutions collect form web for “Pantalla personalizada de botón de conmutación de Android”

Crear toggle_selector.xml en res / drawable

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

Aplicar el selector al botón de alternar

 <ToggleButton android:id="@+id/chkState" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/toggle_selector" android:textOff="" android:textOn=""/> 

Nota: para eliminar el texto que utilicé en el código anterior

 textOff="" textOn="" 

No sé si esta es la mejor solución, pero funcionó bien para mí:

1.- Decidir cuán grande desea el botón de conmutación. En mi caso anchura 56dp y altura 76dp.

2.- Crear el conjunto de iconos 56px-76px para mdpi, 84px-113px hdpi, igual para xhdpi y xxhdpi

3.- Mueva los iconos en la carpeta correspondiente. En mi caso, 20 iconos 5 en cada carpeta, denominados ic_name1_on, ic_name1_off […] ic_name5_off

4.- Cree los siguientes archivos xml en una nueva carpeta llamada drawable (si aún no existe):

  • Ic_name1_toggle.xml
  • Ic_name1_toggle_bg.xml
  • Ic_name2_toggle.xml
  • (…)
  • Ic_name5_toggle_bg.xml

5.- En ic_name1_toggle.xml el código debe ser:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="false" android:drawable="@drawable/ic_name1_off" /> <item android:state_checked="true" android:drawable="@drawable/ic_name1_on" /> </selector> 

6.- En ic_name1_toggle_bg.xml el código debe ser:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+android:id/background" android:drawable="@android:color/transparent" /> <item android:id="@+android:id/toggle" android:drawable="@drawable/ic_name1_toggle" /> </layer-list> 

7.- Finalmente en su layout.xml:

 <ToggleButton android:id="@+id/toggleButton1" android:layout_width="56dp" android:layout_height="76dp" android:background="@android:color/transparent" android:button="@drawable/ic_name1_toggle_bg" android:textOff="" android:textOn="" /> 

Crear selector

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/btn_da" android:state_checked="true"/> <item android:drawable="@drawable/btn_nu"/> </selector> 

Y utilizarlo como fondo para su ToggleButton.

Creo que necesitas definir un fondo personalizado para tu botón. Eche un vistazo a la Guía para desarrolladores sobre cómo personalizar el fondo de un botón .

Sin embargo, en el paso tres, cree un nuevo archivo XML en el res/drawable/ directory Utilice este Xml:

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

El elemento android:state_checked="true" es lo que define ese estado como el fondo seleccionado.

Hazme saber si esto funciona para ti.

  • Botón de selección de Android MenuItem
  • ¿Cómo puedo obtener el texto dinámico ToggleButton en android?
  • ¿Es posible crear un ToggleButton sin texto?
  • ¿Cómo saber si el usuario ha cambiado el estado del botón de alternancia?
  • Cómo realizar vinculación de datos de dos vías con un ToggleButton?
  • Establecer ToggleButton para reproducir el sonido predeterminado cuando se hace clic en?
  • Android: Crear un botón de alternancia con imagen y sin texto
  • Android: AmazingListView encabezado fijado es intocable
  • Utilice el botón de conmutación estilo Android 4.0
  • ToggleButton en ListView, el valor cambia automáticamente al desplazarse
  • Centrar la imagen ToggleButton - sin texto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.