J'ai beaucoup d'images dans mon application, j'utilise resize
et en personnalisant la largeur et la hauteur de nombreuses listes, je reçois du serveur des images de grande taille pour chacune d'entre elles. Est-ce une bonne idée d'utiliser resize
ou dois-je récupérer des images plus petites sur le serveur, là où c'est nécessaire, et supprimer resize()
à partir de l'appel à Picasso, cela augmentera-t-il les performances de l'application ? Ma principale question est de savoir si l'utilisation de resize
dans votre application réduit les performances car il doit redimensionner chaque image dans votre application.
Réponses
Trop de publicités?Picasso
ne fera que resize()
l'image une seule fois parce qu'elle sera mise en cache (c'est-à-dire stockée dans la base de données du LruCache ), à moins que le cache n'ait atteint la limite maximale, votre cache supprimera une image afin de pouvoir en stocker de nouvelles. Un nouvel accès à l'image supprimée déclenchera un autre resize()
mais pour les images qui sont encore dans le cache, Picasso n'aura pas besoin d'effectuer un appel. resize()
.
Si vous avez un contrôle total sur votre serveur, il serait préférable de créer une API avec des paramètres de taille d'image personnalisables. Supposons que vous n'ayez besoin que d'une vignette, vous n'aurez qu'à indiquer la largeur et la hauteur de votre image plutôt que de télécharger une grande image qui ne présente aucun avantage pour les vignettes et qui vous permet d'économiser de la bande passante.
La fonction resize() de Picasso permet d'améliorer les performances de rendu,
Cependant, si la taille réelle du fichier est importante, le temps de téléchargement sera plus long que le temps de téléchargement de la taille réelle.
Utilisez donc des images redimensionnées à partir du serveur ou, si vous ne pouvez pas disposer d'images redimensionnées pour chaque résolution, utilisez les deux méthodes.
De cette façon, vous pouvez au moins réduire le temps de chargement à un temps considérable.
@gurvinder, il semble y avoir beaucoup de scénarios concernant l'amélioration des performances.
Scénario 1 image haute résolution -> grande taille de l'image -> temps de chargement plus long
Solution - Vous pouvez réduire la résolution de l'image en fonction de la résolution maximale supportée par votre application.
Scénario 2 Quelle bibliothèque d'images ? Picasso, Glide, UniversalImageLoader ou Fresco ? Solution - Je vous suggère d'opter pour fresco, pour moi fresco est impressionnant. la mise en cache et les performances sont bien plus rapides que n'importe quel autre système.