Pregunta

Actualmente estoy dibujando una serie de círculos sobre un lienzo en una vista personalizada en el código. los círculos son estáticos y no cambian. Me gustaría llamar usando un ShapeDrawable en XML para ayudar a limpiar mi código. Voy a tener un número de diferentes dibujables que el usuario puede seleccionar y, por tanto, yo no quiero hacer esto en código. que tiene 3 ó 4 dibujables xml parece un más ordenado mucho para mí.

He creado un círculo en XML usando un ShapeDrawable pero no puedo agregar más de una forma para el código XML.

¿Cómo agrego múltiples formas a un documento XML utilizando ShapeDrawable.

¿Fue útil?

Solución 2

creo que he encontrado una solución para añadir varias formas a mi archivo XML usando Capa-lista. No he probado esto todavía pero esto parece t ser exactamente lo que quiero como las formas serán dibujar en el orden de su índice de matriz.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
   <item>
      <shape>
         <solid android:color="#FFF8F8F8" />
      </shape>
   </item>
   <item android:top="23px">
      <shape>
         <solid android:color="#FFE7E7E8" />
      </shape>
   </item>
</layer-list>

Blog post

Android docs

Otros consejos

Así es como lo hice un círculo rojo lleno de un borde negro de un píxel, con un número blanco 72 en el centro:

Crea un archivo XML en res \ estirable con un nombre adecuado, por ejemplo red_circle_black_border.xml

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="@android:color/black" />
        </shape>
    </item>
    <item android:top="1dp" android:left="1dp" android:right="1dp" android:bottom="1dp">
        <shape android:shape="oval">
            <solid android:color="@android:color/red" />
        </shape>
    </item>
</layer-list>

A continuación, para usarlo en su diseño, la declara como sigue:

<TextView
    android:text="72"
    android:textSize="14dp"
    android:textStyle="bold"
    android:background="@drawable/red_circle_black_border" 
    android:layout_width="22dp"
    android:layout_height="22dp"
    android:gravity="center_vertical|center_horizontal"
    android:textColor="@android:color/white" />

Obviamente, cambiar el TEXTSIZE y layout_width / altura según sea necesario: -)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top