J'ai une application Android Xamarin Forms (2.0) où j'essaie de montrer une image. J'ai une icône appelée icon-pages-r1.png
que j'essaie de montrer en utilisant le code suivant:
<Image Source="icon-pages-r1.png" />
L'image ne montre pas cependant. Quand je change la source en Icon.png
(l'icône par défaut de Xamarin), cela fonctionne.
L’image est un fichier PNG semi-transparent (avec une icône colorée au centre et transparente autour de celui-ci), elle mesure 46 x 46 et sous Windows, elle affiche très bien le type d’élément Fichier PNG. J'ai essayé d'ouvrir l'image dans Paint et de la réenregistrer (ce qui supprime la transparence), mais cela ne fonctionne pas non plus. Le Build Action
pour les images est AndroidResource
avec Copy to Output Directory
défini sur Do not copy
.
Est-ce que quelqu'un sait pourquoi je ne parviens pas à afficher cette image dans mon application?
Vous ne pouvez pas utiliser de trait d'union dans les noms d'images pour Xamarin Android. Débarrassez-vous des traits d'union (à la fois dans le nom du fichier et dans la référence de l'image) et vous serez prêt.
Pour les autres qui pourraient se retrouver ici ...
Assurez-vous que le fichier image fait réellement partie du projet (ressources\dessinable) et que l'action de génération est AndroidResource.
Lors de la liaison au nom d'une ressource image sous Android, j'ai découvert qu'il devait s'agir de:
Pour iOS
Étape 1: Ajoutez votre image dans ios -> Dossier des ressources (si ce n'est pas le créer)
Étape 2; Cliquez sur l'image -> Propriétés -> Action de construction -> Définir comme "Contenu"
J'ai eu ce problème.J'ai défini MSBuild project build output verbosity
comme Diagnostic
. Maintenant, j'ai trouvé ce qui suit dans ma fenêtre de sortie lorsque j'ai recherchéOOM.
ImageRenderer: erreur lors du chargement de l'image: Java.Lang.OutOfMemoryError: échec de l'allocation d'une allocation d'octets 571513228 avec 2140744 octets libres et 92 Mo jusqu'au MOO
Maintenant essayé
png
dont la taille est inférieure à 200 Ko taille et inférieure à 1400 X 1050 taille (à des fins de test). Cela a bien fonctionné.
Remarque: "La verbosité de sortie du projet MSBuild" se trouve sous Outils -> Options -> Projets et solutions -> Générer et exécuter
Points de contrôle généraux
Créez une page de contenu comme suit
<StackLayout VerticalOptions="Center" HorizontalOptions="Center">
<Label Text="Pre" />
<Image Source="abstracttriangleg.png"
Aspect="AspectFill" VerticalOptions="End" HorizontalOptions="CenterAndExpand"/>
<Label Text="Post" />
</StackLayout>
bin
et Obj
.Ressources dit:
Android prend en charge les fichiers bitmap dans trois formats: .png (préféré), .jpg (acceptable), .gif (déconseillé).
Compresser les fichiers PNG et JPEG dit:
Vous pouvez réduire la taille des fichiers PNG sans perte de qualité d'image à l'aide d'outils tels que pngcrush, pngquant ou zopflipng. Tous ces outils peuvent réduire la taille du fichier PNG tout en préservant la qualité de l'image.
L'outil pngcrush est particulièrement efficace.
Pour compresser des fichiers JPEG, vous pouvez utiliser des outils tels que packJPG et guetzli.
Références :