Android Performance XML Drawable vs CSS3 vs Imágenes

Estoy intentando crear algunos botones de conmutación personalizados en mi aplicación de Android. Y quiero que parezca lo siguiente:

Botones alternativos personalizados

En esta imagen 75, 39 y AZ están en estado "Off" y 37 está en estado "On".

Así que mi pregunta es:

¿Cuál es la mejor manera de generar aquellos en Android:

  1. XML dibujables con bordes, fondos, rayos fronterizos

  2. Un montón de imágenes de 9 parches para cada forma, estado y densidad de pantalla, o

  3. ¿Utilizar un WebView y utilizar CSS3?

Bien. He ido con el XML Drawable. Aquí está mi solución:

<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_checked="true"> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:top="0dp" android:bottom="2dp" android:left="0dp" android:right="0dp"> <shape android:shape="rectangle"> <solid android:color="@color/toggle_border_dark" /> <corners android:topLeftRadius="20dp" android:topRightRadius="20dp" android:bottomRightRadius="30dp" android:bottomLeftRadius="30dp" /> </shape> </item> <item android:top="2dp" android:bottom="0dp" android:left="0dp" android:right="0dp"> <shape android:shape="rectangle"> <solid android:color="@color/toggle_border_light" /> <corners android:topLeftRadius="30dp" android:topRightRadius="30dp" android:bottomRightRadius="20dp" android:bottomLeftRadius="20dp" /> </shape> </item> <item android:top="1dp" android:right="1dp" android:left="1dp" android:bottom="1dp"> <shape android:shape="rectangle" > <solid android:color="@color/toggle_bg_on" /> <corners android:topLeftRadius="20dp" android:topRightRadius="20dp" android:bottomRightRadius="20dp" android:bottomLeftRadius="20dp" /> </shape> </item> </layer-list> </item> <item> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:top="0dp" android:bottom="2dp" android:left="0dp" android:right="0dp"> <shape android:shape="rectangle"> <solid android:color="@color/toggle_border_light" /> <corners android:topLeftRadius="20dp" android:topRightRadius="20dp" android:bottomRightRadius="30dp" android:bottomLeftRadius="30dp" /> </shape> </item> <item android:top="2dp" android:bottom="0dp" android:left="0dp" android:right="0dp"> <shape android:shape="rectangle"> <solid android:color="@color/toggle_border_dark" /> <corners android:topLeftRadius="30dp" android:topRightRadius="30dp" android:bottomRightRadius="20dp" android:bottomLeftRadius="20dp" /> </shape> </item> <item android:top="1dp" android:right="1dp" android:left="1dp" android:bottom="1dp"> <shape android:shape="rectangle" > <solid android:color="@color/toggle_bg_off" /> <corners android:topLeftRadius="20dp" android:topRightRadius="20dp" android:bottomRightRadius="20dp" android:bottomLeftRadius="20dp" /> </shape> </item> </layer-list> </item> </selector> 
  • El buscapersonas de vista automática hace que los fotogramas se descarguen
  • El visualizador de jerarquía de Android no muestra los tiempos para la representación
  • Rendimiento de Scala para Android
  • Rendimiento JPG vs WebP en Android
  • ¿Hay algún beneficio real usando el paso de peatones para Android 4.4 y superiores?
  • Malo rendimiento al dibujar continuamente en CustomView
  • Gran número de TextViews un éxito de rendimiento? ¿Debo cambiar a ListView en lugar de usar Scrollview?
  • Android Remote methods (AIDL) vs Intents - rendimiento y uso de la batería
  • Impacto de 'instanceof' en el código Java de Android
  • ¿Tiene Android (en ARM) los contadores de rendimiento de hardware?
  • Hilo de fondo que bloquea la interfaz de usuario durante varios segundos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.