2014-07-25 3 views
0

J'ai une longue Listview (~ 300) ayant de grandes images (~ 720 * 300) dans chaque rangée. Maintenant, si je fais défiler jusqu'à la fin de la Listview, mon hashmap (qui stocke les bitmaps) contient 300 images. En raison de laquelle de nombreuses fois je sors de l'exception de la mémoire. Quelle est la meilleure façon de résoudre ce problème?Meilleure façon de gérer le stockage bitmap dans une longue liste ayant de grandes images?

Merci de votre aide. Tout code serait génial!

+0

vous pouvez utiliser ImageLoader bibliothèque ou aquery bibliothèque pour charger votre images –

+0

Il va m'aider à télécharger des images facilement, mais comment va-t-il résoudre mon problème? –

+0

ils stockent également votre chemin d'image dans votre téléphone et dispaly de ce chemin. Stocker également tout bitmap. Si vous stockez 300 images, cela donne une exception de mémoire. –

Répondre

2

Vous avez probablement besoin d'une bibliothèque comme Picasso. Picasso vous aide à télécharger les images, à les redimensionner si nécessaire et à les mettre en cache. Il gère également les problèmes spécifiques à ListView, comme la libération de la mémoire pour assurer un défilement en douceur.

+1

Je recommande vraiment d'utiliser Picasso. C'est une bibliothèque légère et pleine de fonctionnalités, y compris celle que vous cherchez ici. – Leonardo

0

Pour résoudre ce problème, vous devez faire le tas plus grand dans le Manifest Android, chargement aussi paresseux si votre chargement en ligne et vous doivent réutiliser les cellules

+0

Je ne veux pas garder 300 à la fois, je veux conserver 2 ou 3 fois le format de la page (éléments affichés sur une page). Tout conduit à réaliser cela? Merci –

+0

En les chargeant, vous pouvez utiliser comme la plupart des applications le chargement plus sur le défilement vers le bas de la liste d'images, et réutiliser les cellules utilisées avant.http: //www.survivingwithandroid.com/2013/10/android-listview-endless -adapter.html (Ceci est un tutoriel pour l'adaptateur sans fin) –

+0

Les cellules sont automatiquement réutilisées en cas de listview. Ce n'est pas à propos de la cellule, c'est à propos de bitmap pour chaque cellule. Ce qui sera différent pour les différentes cellules et ne peut pas être réutilisé –

Questions connexes