est un peu suivi à ma dernière question: Canvas is drawing too slowlyLe moyen le plus rapide pour charger et afficher un jpeg sur un SurfaceView? Ce
Maintenant que je peux dessiner des images plus rapidement, le problème que je suis confronté à est que le chargement réel des images prend beaucoup trop longtemps.
Dans l'application sur laquelle je travaille, l'utilisateur peut lire des images vidéo (jpeg) successivement, comme s'il regardait la vidéo en temps réel. J'ai utilisé BitmapFactory.decodeFile()
pour charger chaque jpeg dans un bitmap. Je ne parviens pas à charger toutes les images à la fois car il y en a environ 240, et cela utiliserait tout mon espace mémoire. Ce que j'ai fait est de précharger jusqu'à 6 à la fois dans un tableau au moyen d'un fil séparé afin de réduire le temps nécessaire à l'affichage de chaque image.
Malheureusement, il faut entre 50 et 90 ms pour charger une image, et j'ai besoin d'afficher une image toutes les 42 ms. Existe-t-il un moyen plus rapide de charger des images? Pour plus de clarté, ces images se trouvent dans un dossier de la carte SD et sont toutes en format JPEG 720 x 480. Je les échantillonne à la moitié de cette taille pour réduire l'utilisation de la mémoire.
Avez-vous remarqué une différence lors de l'utilisation de la mémoire interne ou lors de l'utilisation de png au lieu de jpeg? – mibollma
Je n'ai pas encore essayé la mémoire interne, je suppose que j'essaierai ensuite. J'ai commencé en utilisant png, mais ils étaient beaucoup plus grands que jpeg et les jpeg prennent déjà environ 8 Mo sur l'appareil. – BigFwoosh
Cela semble un peu plus rapide d'utiliser la mémoire interne, mais ce n'est pas encore assez rapide pour ce que je fais. Je pense que ce dont j'ai vraiment besoin, c'est d'un moyen de stocker toutes les images sans sacrifier la qualité. Je peux les stocker tous en mémoire si j'ai défini inSampleSize sur 4, mais la qualité baisse considérablement. – BigFwoosh