Milhares de byte[] para Bitmap

Eu tenho uma aplicação mobile no android stuido que necessita pegar mais ou menos 900 imagens gravadas em um banco de dados sqlite e exibi-los em uma ImageView, no entanto, como são muitas, fica dando erro de memória no android. Alguém sabe um jeito para eu carregar essas imagens sem causar erros?

Mas você precisa exibir as 900 imagens de uma vez? Se não, carregue somente as que estiverem sendo exibidas no momento.

Pode também fazer um pequeno pool de imagens, carregando de 10 em 10 por exemplo. Assim, se o usuário estiver na imagem 7, e quiser visualizar as próximas, você só precisa carregar de novo quando ele tentar passar da 10 (daí você carrega da 11 à 20, e assim sucessivamente).

Abraço.

1 curtida

Bom, poderia funcionar, mas as imagens são carregadas em byte[] e acabam excedendo a quantidade de bytes que podem ser armazenadas no android, mesmo se forem carregadas aos poucos. Não seria necessária alguma forma de apagar as imagens anteriores e depois as carregar novamente quando o usuário as requisitar? Ah, antes que eu me esqueça, as imagens são exibidas dentro de um ListView.

Procure saber mais sobre RecyclerView.
Não sei se vai resolver . Mas pode te ajudar…
Esta classe deve cuidar dessas preocupações para você.
Ela deve coordenar e calcular os itens a serem exibidos.
Mas ainda tbm sou da mesma opnião do TerraSkilll.
900 imagens para serem carregas de uma so vez parece muito. Tenta Bolar um paginator ai no seu App. Talvez seje uma melhor saída mesmo.

Uma breve implementação e exemplo: