Dans mon application, j'ai besoin de télécharger un grand nombre d'images pour les données dans un ListView. Je fais un chargement paresseux et ça marche plutôt vite, mais il y a quand même un délai de 1 à 3 secondes avant que la première image n'apparaisse. Ma recherche dans le délai montre que le transfert de données prend 50% du temps. Maintenant, je crois que si je pouvais faire un chargement incrémentiel des images, je serais en mesure d'afficher une demi-image après seulement 75% du délai, ce qui est assez bon. J'utilise Drawable.createFromStream
qui utilise en interne BitmapFactory.decodeResourceStream
. Mais même s'il prend un flux, il ne peint rien avant que toutes les données ne soient téléchargées et décodées.Chargement incrémental d'images
Connaissez-vous un moyen de charger et de peindre les images de manière incrémentielle avec la librairie Android par défaut? Ou peut-être un bon indépendant?
Par "incrémental", vous voulez dire qu'il montre une charge d'image partielle pendant le chargement? Je pense que vous auriez besoin d'une bibliothèque externe pour le faire; Je ne peux penser à rien dans la lib Android par défaut pour cela. BitmapFactory.decodeResourceStream() décode le flux entier en bitmap, qui est ensuite converti en bitmapDrawable, ce qui explique pourquoi vous ne voyez pas les images partielles qui l'utilisent. –
Exactement. Similaire à la façon dont les navigateurs chargent les images (pixel) ligne par ligne. –