web-dev-qa-db-fra.com

Comment ajouter du remplissage à un bitmap et à une couleur dans une liste de calques

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

17
learner

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.

48
chiuki

Enroulez le bitmap dans un encart pouvant être dessiné et définissez-y le rembourrage

6
dangVarmit

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>

3
Arjun Shankar
<?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>
0
Farshid roohi