Android bitmap taille de l'image en XML
Dans mon fichier XML, j'utilise bitmap comme suit
<bitmap
android:src="@drawable/Icon"
android:gravity="center"/>
Ici la largeur de l'image de l'icône dépasse de l'écran.
J'ai essayé android:largeur="100dp" et tous les. Mais il n'est pas de travail.
Complète fichier XML:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle">
<stroke android:width="3dp" android:color="@color/black" />
<solid android:color="@color/bg_green" />
</shape>
</item>
<item>
<bitmap
android:src="@drawable/Icon"
android:gravity="center"/>
</item>
</layer-list>
Comment puis-je réduire la largeur et la hauteur de la ci-dessus bitmap?
- Est-il absolument nécessaire que vous utilisez une ressource XML? Il semble beaucoup plus facile de créer une échelle d'image bitmap (par code) de la taille requise et l'utiliser.
Vous devez vous connecter pour publier un commentaire.
De Les Développeurs Android j'ai vu qu'il n'y a pas de balise pour les images Bitmap XML qui vous permettent de changer la taille. Vous devez le faire via des Applications Graphiques comme GIMP. Comme @Kevin Cooper a dit déjà, idéalement vous avez besoin de créer différents ensembles de ressources (de tailles différentes) pour les différents types d'écran.
Mais encore, vous pouvez le redimensionner à l'aide attributs width et height
ImageView
, au lieu de créer un bitmap avec la taille différente:Si vous souhaitez réutiliser cette image dans d'autres endroits, vous pouvez créer des style et le réutiliser:
Une autre façon de réutiliser, peut être la création de séparer la mise en page du fichier pour un
ImageView
et puis, y compris dans d'autres mises en page.Si vous souhaitez utiliser cette
bitmap
à l'intérieur de la couche de liste, veuillez voir @Kevin Cooper réponse, comme il l'a suggéré qu'il est possible d'ajouter des remplissages delayer list item
:Et comme @Nicolo également souligné, la forme de l'API 23, il est possible de définir
android:width
etandroid:height"
point.Bien qu'il n'y a pas de paramètres largeur et hauteur pour les images bitmap, vous pouvez définir la taille du bitmap à l'aide de la gravité et de l'élément de largeur/hauteur.
Vous pouvez définir la largeur de l'objet et de la hauteur et de l'échelle bitmap à l'intérieur de l'aide de la gravité.
Je sais que c'est une vieille question, mais peut-être que quelqu'un va trouver utile.
AVERTISSEMENT:
Comme déjà mentionné dans les commentaires, cette méthode ne fonctionne qu'avec les API de niveau 23 (Android 6.0) et jusqu'.
android:gravity="center"
attribut de l'élément si.Suffit d'utiliser
au lieu
Si vous voulez réduire la largeur et la hauteur de sorte qu'il s'adapte à l'écran, et vous n'avez pas besoin de définir précisément les dimensions, vous pouvez tout simplement mis
left
etright
sur l'élément parent. Qui sera, pour l'essentiel ajouter une marge autour de l'image afin qu'elle prend moins de place:Idéalement, cependant, vous devez télécharger différente de la taille des images pour chaque résolution d'écran (par exemple,
hdpi
,xxhdpi
) et ensuite, vous n'aurez pas besoin de programmation pour définir la taille à tous. Vous pouvez voir la liste complète ici.android:gravity="center"
, l'image va encore hors de l'écran, indépendamment de la marge.Essayez de faire de cette façon, cela a fonctionné pour moi:
ce que j'utilise pour redimensionner mes mipmap sur mon écran de lancement.
J'ai juste redimensionné l'image manuellement, puis il travaille pour moi