Domanda

Attualmente sto disegnando una serie di cerchi su una tela in una visualizzazione personalizzata nel codice. i cerchi sono statici e non cambiano. Vorrei disegnare utilizzando uno ShapeDrawable in XML per contribuire a disinquinare il mio codice. Avrò un certo numero di diversi drawable, che l'utente può selezionare e quindi io non voglio farlo in codice. avere 3 o 4 drawable XML sembra un più ordinato molto per me.

Ho creato un cerchio in XML utilizzando uno ShapeDrawable, ma sono in grado di aggiungere più di una forma al xml.

Come faccio ad aggiungere molteplici forme a un documento XML utilizzando ShapeDrawable.

È stato utile?

Soluzione 2

Credo di aver trovato una soluzione per aggiungere più forme per il mio file XML utilizzando Layer-list. I havent ancora provato questo, ma questo sembra t essere esattamente quello che voglio, come le forme saranno disegnare nell'ordine del loro indice di array.

<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 inviare

Android docs

Altri suggerimenti

Ecco come ho fatto un cerchio rosso pieno di un bordo nero di un pixel, con un numero bianco 72 al centro:

Crea un file XML in res \ drawable e il nome appropriato, ad esempio 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>

Poi, per usarlo nel layout, dichiararla come segue:

<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" />

Ovviamente, cambiare il textSize e layout_width / altezza come richiesto: -)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top