pessoal,
tenho uma aplicação desenvolvida em android que utiliza o volley.
Faço uma consulta trazendo todas as fotos que preciso exibir.
Faço a primeira consulta trazendo umas 10 fotos, ela exibe normal.
Depois troco o acesso e faço a mesma consulta, e estoura o erro.
Cara, usa o Picasso ou Glide pra exibir as imagens e usa a opção deles de guardar em cache… está estourando pq quando vc mostra as novas, ela ta mantendo as anteriores em memória…
Aqui tem um tutorialzinho e comparativo com o Picasso e ainda fala do cache
Uma pergunta que não quer calar:
eu uso o imageLoader junto com o volley desta forma: mImageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() { private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>(1); public void putBitmap(String url, Bitmap bitmap) { mCache.put(url, bitmap); } public Bitmap getBitmap(String url) { return mCache.get(url); } });
se eu também usar o picasso ou o glide, ele não faria a mesma coisa e ainda por cima, utilizar o cache, não seria fazer o mesmo trabalho trocando somente as libs?
Spotik, deixei a implementação com volley mas usando o picasso para carregar a imagem. Ele chegou a abrir normal algumas imagens, outras não…
e continua dando o erro no log:
`09-08 13:36:59.409: E/dalvikvm-heap(1722): Out of memory on a 723216-byte allocation.
Ele abriu algumas imagens…por exemplo de 7 imagens, abriu 3. Outras 4 não conseguiu.
`
Hmm, nem sabia que tu tava usando o ImageLoader… bom, em qualquer tipo de dispositivo da isso? Essa imagem que tu coloco que ta usando como exemplo eh uma imagem BEM grande… se pá não é melhor vc redimensionar ela quando fazer o load no picasso? Pq exibir 10 imagens em 1080p de uma vez é pra foder a memoria do celular msm …
Sei que vc tem que trazer a imagem que ta lá, isso não é problema, o problema ta sendo na hora de colocar todas essas imagens em memoria. A não ser que você necessite mto que todas as imagens sejam ixibidas em 1080p, vc tras a imagem e com o glide/picasso vc redimensiona ela na hora de exibir:
Glide
.with(this)
.load(url)
.centerCrop()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.override(600, 200) //Aqui o resize na imagem pro tamanho que vc quer
.into(myImageView);