¿Cómo personalizar el botón?

Estoy mirando a la aduana el botón del Switch a convertirse como siguiendo:

Introduzca aquí la descripción de la imagen

¿Cómo lograrlo?

Puede utilizar el siguiente código para cambiar el color y el texto :

 <org.jraf.android.backport.switchwidget.Switch android:id="@+id/th" android:layout_width="match_parent" android:layout_height="wrap_content" app:thumb="@drawable/apptheme_switch_inner_holo_light" app:track="@drawable/apptheme_switch_track_holo_light" app:textOn="@string/switch_yes" app:textOff="@string/switch_no" android:textColor="#000000" /> 

Cree un xml denominado colors.xml en la carpeta res / values:

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="red">#ff0000</color> <color name="green">#00ff00</color> </resources> 

En la carpeta dibujable, cree un archivo xml my_btn_toggle.xml:

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

Y en la sección de xml que define su botón del toggle agregan:

 android:background="@drawable/my_btn_toggle 

Cambiar el color del textOn de textOn y textOff

 android:switchTextAppearance="@style/Switch" 

Sin embargo, esto podría no ser la mejor manera, pero he tomado una manera diferente de resolver todo mi problema relacionados con Switch. Aquí está mi código –

 <RadioGroup android:checkedButton="@+id/offer" android:id="@+id/toggle" android:layout_width="match_parent" android:layout_height="30dp" android:layout_marginBottom="@dimen/margin_medium" android:layout_marginLeft="50dp" android:layout_marginRight="50dp" android:layout_marginTop="@dimen/margin_medium" android:background="@drawable/pink_out_line" android:orientation="horizontal"> <RadioButton android:layout_marginTop="1dp" android:layout_marginBottom="1dp" android:layout_marginLeft="1dp" android:id="@+id/search" android:background="@drawable/toggle_widget_background" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:button="@null" android:gravity="center" android:text="Search" android:textColor="@color/white" /> <RadioButton android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:layout_marginBottom="1dp" android:id="@+id/offer" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/toggle_widget_background" android:button="@null" android:gravity="center" android:text="Offers" android:textColor="@color/white" /> </RadioGroup> 

Pink_out_line.xml

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="2dp" /> <solid android:color="#80000000" /> <stroke android:width="1dp" android:color="@color/pink" /> </shape> 

Toggle_widget_background.xml

 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/pink" android:state_checked="true" /> <item android:drawable="@color/dark_pink" android:state_pressed="true" /> <item android:drawable="@color/transparent" /> </selector> 

Y aquí está la salida – Introduzca aquí la descripción de la imagen

 <Switch android:layout_width="wrap_content" android:layout_height="wrap_content" android:thumb="@drawable/custom_switch_inner_holo_light" android:track="@drawable/custom_switch_track_holo_light" android:textOn="@string/yes" android:textOff="@string/no"/> 

Drawable / custom_switch_inner_holo_light.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:drawable="@drawable/custom_switch_thumb_disabled_holo_light" /> <item android:state_pressed="true" android:drawable="@drawable/custom_switch_thumb_pressed_holo_light" /> <item android:state_checked="true" android:drawable="@drawable/custom_switch_thumb_activated_holo_light" /> <item android:drawable="@drawable/custom_switch_thumb_holo_light" /> </selector> 

Dibujable / custom_switch_track_holo_light.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@drawable/custom_switch_bg_focused_holo_light" /> <item android:drawable="@drawable/custom_switch_bg_holo_light" /> </selector> 

Las siguientes imágenes son 9.paths drawables y deben estar en densidad diferente (mdpi, hdpi, xhdpi, xxhdpi). Como ejemplo doy xxhdpi (usted puede cambiar el tamaño ellos si u necesario):

Drawable / custom_switch_thumb_disabled_holo_light

Custom_switch_thumb_disabled_holo_light

Drawable / custom_switch_thumb_pressed_holo_light

Custom_switch_thumb_pressed_holo_light

Drawable / custom_switch_thumb_activated_holo_light

Custom_switch_thumb_activated_holo_light

Drawable / custom_switch_thumb_holo_light

Custom_switch_thumb_holo_light

Drawable / custom_switch_bg_focused_holo_light

Custom_switch_bg_focused_holo_light

Drawable / custom_switch_bg_holo_light

Introduzca aquí la descripción de la imagen

Puede utilizar el widget de conmutador regular y simplemente llamar a setTextOn() y setTextOff() , o usar los android:textOn y android:textOff .

Más información en este enlace: http://www.mokasocial.com/2011/07/sexily-styled-toggle-buttons-for-android/

 <ToggleButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/toggle_me"/> 

Y el dibujable será algo así como:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:drawable="@drawable/toggle_me_on" /> <!-- checked --> <item android:drawable="@drawable/toggle_me_off" /> <!-- default/unchecked --> </selector> 
  • ¿Los interruptores androides - haciendo la altura del pulgar más grande que la altura de la pista, cómo?
  • ¿El botón del interruptor-botón se inclina?
  • Android conmutador personalizado izquierda-derecha drawables
  • ¿Cómo podemos implementar enlace de datos para el botón Switch para el evento onCheckedChageListener?
  • Cambiar el color de la pista
  • El interruptor se bloquea cuando se hace clic en Android 5.0
  • El control de conmutadores no funciona en Dialog en Android versión 5.0
  • Cómo cambiar el ancho de SwitchCompat thumb
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.