J'ai besoin de créer un dessin avec une liste de calques telle que le calque d'arrière-plan soit une image et le premier plan une couleur transparente. Je suis capable de faire ça. Ce que je ne réussis pas, c’est d’ajouter un peu de marge/remplissage pour qu’à leur fond une partie des images s’affiche sans le calque coloré au-dessus. Voici mon xml. Merci pour ton aide.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item>
<bitmap Android:src="@drawable/img1"
/>
</item>
<item>
<shape
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" >
<solid Android:color="@color/color1" />
<padding Android:bottom="20dp" />
</shape>
</item>
</layer-list>
Comme cette configuration ne fonctionne pas, je suppose que le remplissage doit être placé dans la première couche. Mais je ne sais pas comment faire cela avec un bitmap
Déplacez le remplissage inférieur de la shape
vers le parent item
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item>
<bitmap Android:src="@drawable/img1" />
</item>
<item Android:bottom="20dp">
<shape Android:shape="rectangle" >
<solid Android:color="@color/color1" />
</shape>
</item>
</layer-list>
Voir http://idunnolol.com/Android/drawables.html#layer-list pour plus d'informations.
Enroulez le bitmap dans un encart pouvant être dessiné et définissez-y le rembourrage
Si vous ajoutez l'élément pouvant être dessiné au même élément de la liste des couches, vous pouvez appliquer des propriétés telles que Android:top
, Android:bottom
, Android:left
ou Android:right
pour gérer le remplissage.
J'ai corrigé mon problème avec le dessin qui était hors d'alignement avec TextView en utilisant simplement les propriétés Android:width
et Android:height
.
Par exemple.
<item
Android:width="26dp" Android:height="26dp"
Android:drawable="@drawable/ic_person">
<shape Android:shape="rectangle" >
<solid Android:color="@Android:color/transparent" />
</shape>
</item>
<?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="#FFE3F5F2"/>
</shape>
</item>
<item
Android:bottom="7dp"
Android:left="7dp"
Android:right="7dp"
Android:top="7dp">
<bitmap
Android:src="@drawable/ic_link">
</bitmap>
</item>
</layer-list>