Rotiv
Agosto 22, 2012, 3:07pm
#1
Boa tarde,
Pessoal estou trabalhando com os componentes Gallery e ImageSwitcher…
Só q as imagens q vem do servidor são mto grandes e algumas chegam a dar Exceção java.lang.OutOfMemoryErro
Alguém sabe oq posso fazer para não deixar dar exceção…qualquer ajuda é bem vindo…
Vlw
Carregar elas em um tamanho menor, o método decodeResource da BitmapFactory aceita um inteiro que é para samplear a imagem.
Se voce coloca 2, voce terá uma imagem com metade do tamanho original que ocupa só 1/4 da memoria.
Rotiv
Agosto 23, 2012, 7:07am
#3
Cara esse metodo decodeResource recebe uma Resource e um Id…
Como adaptaria esse metodo para usar no meu metodo
Nao sei se eu entendi direito, mas pra eu usar esse metodo eu teria q ter essa imagem no aparelho não é?
Estou usando esse metodo para baixar a imagem apatir de uma URL
[code]public Bitmap baixarImagem(String url) throws IOException {
// definindo a URL
URL aURL = new URL(url);
// definindo a conexao
URLConnection conn = aURL.openConnection();
// conectando
conn.connect();
// pegando a imagem
InputStream is = conn.getInputStream();
// criando o buffer
BufferedInputStream bis = new BufferedInputStream(is);
// transformando a imagem de stream para um bitmap
Bitmap bm = null;
bm = BitmapFactory.decodeStream(bis);
// fechando os streans
bis.close();
is.close();
return bm;
}[/code]
Nesse caso voce precisa usar o BitmaFactory.Options para fazer o downsample.
BitmapFactory.Options options = new Options();
options.inSampleSize = 2;
Bitmap bmp = BitmapFactory.decodeStream(stream, null, options);
Rotiv
Agosto 23, 2012, 8:36am
#5
Legal vlw…
Cara so pra eu entender como esse cara funciona…
Ele vai baixar a imagem com um qualidade menor é isso?
Como funciona esse cara exatamente sabe explicar???
Obrigado
Ele ainda usa a mesma stream completa, a diferença é como ele decodifica.
Voce pode ver sobre imagens em Displaying Images Efficiently , sobre down sample no loading bitmaps .