Comment ajoutez-vous une image de fond à une forme? Le code que j'ai essayé ci-dessous mais sans succès:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle" Android:padding="10dp">
//here is where i need to set the image
<solid Android:color="@drawable/button_image"/>
<corners
Android:bottomRightRadius="5dp"
Android:bottomLeftRadius="5dp"
Android:topLeftRadius="5dp"
Android:topRightRadius="5dp"/>
</shape>
Utilisez les instructions suivantes layerlist
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
<item>
<shape Android:shape="rectangle" Android:padding="10dp">
<corners
Android:bottomRightRadius="5dp"
Android:bottomLeftRadius="5dp"
Android:topLeftRadius="5dp"
Android:topRightRadius="5dp"/>
</shape>
</item>
<item Android:drawable="@drawable/image_name_here" />
</layer-list>
J'ai utilisé ce qui suit pour une image pouvant être dessinée avec un fond circulaire.
<?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="@color/colorAccent"/>
</shape>
</item>
<item
Android:drawable="@drawable/ic_select"
Android:bottom="20dp"
Android:left="20dp"
Android:right="20dp"
Android:top="20dp"/>
</layer-list>
Voici à quoi cela ressemble
J'espère que ça aide quelqu'un.
C'est une forme de cercle avec une icône à l'intérieur:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:drawable="@drawable/ok_icon"/>
<item>
<shape
Android:shape="oval">
<solid Android:color="@color/transparent"/>
<stroke Android:width="2dp" Android:color="@color/button_grey"/>
</shape>
</item>
</layer-list>
c'est une image de coin
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:drawable="@drawable/img_main_blue"
Android:top="5dp"
Android:bottom="5dp"
Android:right="5dp"
Android:left="5dp"/>
<item>
<shape Android:shape="rectangle" Android:padding="10dp">
<corners Android:radius="10dp"/>
<stroke Android:width="5dp"
Android:color="@color/white"/>
</shape>
</item>
</layer-list>
<?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="@color/orange"/>
</shape>
</item>
<item
Android:top="2dp"
Android:bottom="2dp"
Android:left="2dp"
Android:right="2dp">
<shape Android:shape="oval">
<solid Android:color="@color/white"/>
</shape>
</item>
<item
Android:drawable="@drawable/messages" //here messages is my image name, please give here your image name.
Android:bottom="15dp"
Android:left="15dp"
Android:right="15dp"
Android:top="15dp"/>
<ImageView
Android:id="@+id/imageView2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/merchant_circle" /> // here merchant_circle will be your first .xml file name
Voici un autre moyen très simple d’obtenir une forme personnalisée pour votre image (Image View). Cela peut être utile pour quelqu'un. C'est juste un code à une seule ligne.
Vous devez d’abord ajouter une dépendance:
dependencies {
compile 'com.mafstech.libs:mafs-image-shape:1.0.4'
}
Et ensuite, écrivez une ligne de code comme celle-ci:
Shaper.shape(context,
R.drawable.your_original_image_which_will_be_displayed,
R.drawable.shaped_image_your_original_image_will_get_this_images_shape,
imageView,
height,
weight);