studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android xml background drawable layer-list

para - manual de programacion android pdf



La lista de capa de Android xml no se muestra correctamente en algunos dispositivos (3)

Tengo una lista de capas xml dibujable como fondo para ver, que no se muestra correctamente en algunos dispositivos.

Tengo un Huawei Ascend Mate con 4.2.2 que lo muestra bien. En la tableta del teléfono Asus con 4.1.2 veo solo el trazo de la forma del artículo y no veo los otros elementos.

¿Qué estoy haciendo mal?

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle" > <solid android:color="@color/yellow_color" /> </shape> </item> <item> <bitmap android:gravity="center_horizontal|bottom" android:src="@drawable/dotted_bg" android:tileMode="repeat" /> </item> <item> <shape> <stroke android:width="4dp" android:color="@color/yellow_color" /> </shape> </item> <item> <bitmap android:gravity="center_horizontal|bottom" android:src="@drawable/tls_bg" /> </item> </layer-list>


Los teléfonos usan diferentes niveles de API: 16 y 17. Asegúrese de no tener varios directorios de valores para objetivos específicos (por ejemplo, valores-v16 y valores-v17 ).

Además, los elementos que no se muestran contienen referencias a algunos objetos dibujables, por lo tanto, asegúrese de que los archivos sean correctos en cada directorio dibujable para cada pantalla dpi.


Probablemente esto se deba a que los dibujables de android:src="@drawable/dotted_bg" , android:src="@drawable/dotted_bg" y android:src="@drawable/tls_bg" son demasiado grandes. Encuentre la densidad de la pantalla de su dispositivo y verifique su carpeta de recursos correspondiente (p. Ej drawable-xhdpi ) y haga que los dibujables en esa carpeta sean más pequeños.


He solucionado el problema. Aparentemente, en algunos dispositivos (Android 4.0 y 4.1.1), el siguiente código hacía que todas las capas debajo de la siguiente forma se sobrepintaran con color negro.

<item> <shape> <stroke android:width="4dp" android:color="@color/yellow_color" /> </shape> </item>

He agregado color sólido transparente para la forma y ahora funciona bien.

<item> <shape> <stroke android:width="4dp" android:color="@color/yellow_color" /> <solid android:color="@android:color/transparent" /> </shape> </item>

¡Así que nunca dejes formas con bordes sin color ya que algunos dispositivos lo pintarán de negro!