¿El atributo <size> no es útil cuando se usa layer-list?

Dado Tengo un fondo dibujable para crear bulletpoints para TextViews como este:

Ejemplo de lo que quiero

Entonces mi código XML se parece a esto:

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:right="235dp"> <shape android:shape="oval"> <padding android:left="10dp" /> <size android:height="5dp" android:width="5dp"/> <solid android:color="@color/my_pink"/> </shape> </item> <item android:left="10dp"> <shape android:shape="rectangle"> <solid android:color="#ffffff"/> <padding android:left="10dp" /> </shape> </item> </layer-list> 

Pero una vez que uso el código mostrado arriba, mis puntos de la bala se parecen a esto:

Resultado del XML mostrado anteriormente

Parece que la etiqueta <size> se ignora por completo.

¿Cómo resolverías este problema? Usando un 9patch, sí lo sé .. tal vez eso es lo más fácil de hacer .. pero de hecho esperaba encontrar una solución XML, ya que es más flexible en el futuro.

Dibujo personalizado también está fuera de la cuestión.

<size> etiqueta <size> ciertamente funciona en layer-list y para mostrar los puntos de bala para textviews puedes usar el atributo xml android:drawableLeft -> link

Con este enfoque, no hay necesidad de 9-patch y dibujo personalizado.

Código de publicación y captura de pantalla aquí para la referencia.

Res / drawable / bullet_point_layer.xml

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:right="3dp"> <shape android:shape="oval"> <padding android:left="10dp" /> <size android:height="10dp" android:width="10dp"/> <solid android:color="#ff0080"/> </shape> </item> 

Res / layout / main.xml

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView one" android:textColor="@android:color/black" android:drawableLeft="@drawable/bullet_point_layer" android:background="@android:color/white" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView Two" android:textColor="@android:color/black" android:drawableLeft="@drawable/bullet_point_layer" android:background="@android:color/white" /> </LinearLayout> 

Como luce

Este es un viejo post, pero pensé que iba a añadir algo muy importante que falta en este post.

Desde mi experiencia, el último elemento de la <layer-list> será el elemento del que se toma el valor de tamaño.

Así que en este ejemplo creo una línea divisora ​​de dos líneas. Especifico un elemento vacío al final para especificar la altura del separador.

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle"> <solid android:color="#535353" /> </shape> </item> <item android:top="@dimen/common_divider_line_half_size"> <shape android:shape="rectangle"> <solid android:color="#737373" /> </shape> </item> <!-- Last item empty to specify divider height --> <item> <shape android:shape="rectangle"> <size android:height="@dimen/common_divider_line_size"/> <solid android:color="@android:color/transparent" /> </shape> </item> </layer-list> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.