studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android android-theme styling android-styles android-switch

para - manual de programacion android pdf



¿Cómo puedo diseñar un Android Switch? (4)

El widget de cambio introducido en API 14 está diseñado de manera predeterminada con holo theme. Quiero darle un estilo un poco diferente, cambiando sus colores y su forma un poco por motivos de marca. ¿Cómo se puede hacer esto? Sé que debe ser posible, ya que he visto la diferencia entre el ICS predeterminado y el tema de TouchWiz de Samsung

Supongo que necesitaré algunos modelos imprimibles, y he visto algunos estilos en http://developer.android.com/reference/android/R.styleable.html con Switch_thumb y Switch_track que se parecen a lo que podría estar buscando . Simplemente no sé cómo usarlos.

Estoy usando ActionbarSherlock si eso hace la diferencia. Solo los dispositivos con API v14 o superior podrán usar un interruptor, por supuesto.


Es una asombrosa respuesta detallada de Janusz. Pero solo por el bien de las personas que vienen a esta página para obtener respuestas, la forma más fácil es en http://android-holo-colors.com/ (enlace inactivo) vinculado desde Android Asset Studio.

Una buena descripción de todas las herramientas está en AndroidOnRocks.com (sitio fuera de línea ahora)

Sin embargo, recomiendo a todo el mundo que lea la respuesta de Janusz, ya que aclarará la comprensión. Usa la herramienta para hacer cosas muy rápido


Puede definir los elementos dibujables que se utilizan para el fondo y la parte del conmutador como esta:

<Switch android:layout_width="wrap_content" android:layout_height="wrap_content" android:thumb="@drawable/switch_thumb" android:track="@drawable/switch_bg" />

Ahora necesita crear un selector que defina los diferentes estados para el conmutador dibujable. Aquí las copias de las fuentes de Android:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:drawable="@drawable/switch_thumb_disabled_holo_light" /> <item android:state_pressed="true" android:drawable="@drawable/switch_thumb_pressed_holo_light" /> <item android:state_checked="true" android:drawable="@drawable/switch_thumb_activated_holo_light" /> <item android:drawable="@drawable/switch_thumb_holo_light" /> </selector>

Esto define el thumb drawable, la imagen que se mueve sobre el fondo. Hay cuatro imágenes de ninepatch utilizadas para el control deslizante:

La versión desactivada (versión xhdpi que usa Android)
El control deslizante presionado:
El control deslizante activado (en estado):
La versión predeterminada (estado desactivado):

También hay tres estados diferentes para el fondo que se definen en el siguiente selector:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:drawable="@drawable/switch_bg_disabled_holo_dark" /> <item android:state_focused="true" android:drawable="@drawable/switch_bg_focused_holo_dark" /> <item android:drawable="@drawable/switch_bg_holo_dark" /> </selector>

La versión desactivada:
La versión enfocada:
Y la versión predeterminada:

Para tener un interruptor con estilo simplemente cree estos dos selectores, configúrelos en su Vista de interruptor y luego cambie las siete imágenes al estilo que desee.


Puede personalizar estilos de material estableciendo diferentes propiedades de color. Por ejemplo , tema de aplicación personalizada

<style name="CustomAppTheme" parent="Theme.AppCompat"> <item name="android:textColorPrimaryDisableOnly">#00838f</item> <item name="colorAccent">#e91e63</item> </style>

Tema de cambio personalizado

<style name="MySwitch" parent="@style/Widget.AppCompat.CompoundButton.Switch"> <item name="android:textColorPrimaryDisableOnly">#b71c1c</item> <item name="android:colorControlActivated">#1b5e20</item> <item name="android:colorForeground">#f57f17</item> <item name="android:textAppearance">@style/TextAppearance.AppCompat</item> </style>

Puede personalizar la pista del interruptor y cambiar el pulgar como en la imagen de abajo definiendo xml drawables. Para más información http://www.zoftino.com/android-switch-button-and-custom-switch-examples


Una forma alternativa y mucho más sencilla es usar formas en lugar de 9 parches. Ya se explica aquí: https://.com/a/24725831/512011