Question

Je prépare actuellement un certain nombre de cercles sur une toile dans une vue personnalisée dans le code. les cercles sont statiques et ne changent pas. Je voudrais les dessiner avec un ShapeDrawable en XML pour aider à nettoyer mon code. Je vais avoir un certain nombre de dessinables que l'utilisateur peut sélectionner et donc je ne veux pas le faire dans le code. ayant 3 ou 4 xml dessinables semble beaucoup plus propre pour moi.

J'ai créé un cercle en XML à l'aide d'un ShapeDrawable mais je suis incapable d'ajouter plus d'une forme à l'XML.

Comment puis-je ajouter plusieurs formes à un document XML à l'aide ShapeDrawable.

Était-ce utile?

La solution 2

Je crois que je l'ai trouvé une solution pour ajouter plusieurs formes à mon fichier XML à l'aide liste des couches. Je nai encore essayé mais cela semble t exactement ce que je veux que les formes seront dessiner dans l'ordre de leur index de tableau.

<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

Autres conseils

Voici comment je l'ai fait un cercle rouge rempli d'une bordure noire d'un pixel, avec un nombre blanc 72 au milieu:

Créez un fichier XML dans res de drawable un nom approprié, par exemple 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>

Ensuite, pour l'utiliser dans votre mise en page, déclarer comme suit:

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

De toute évidence, changer le textSize et layout_width / hauteur selon les besoins: -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top