Ошибка нехватки памяти в галерее в Android

Мой код:

@Override
public View getView(int position, View convertView, ViewGroup parent) {  
ImageView iv = new ImageView(mContext); 
Drawable photo = new BitmapDrawable(loadBitmap(URL));
iv.setImageDrawable(photo);
iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE);  
return iv; 
}

private Bitmap loadBitmap(String url) {
try {
Bitmap bm = BitmapFactory.decodeStream((InputStream)this.fetch(url));
return bm;
}
catch(Exception e) {
e.printStackTrace();
return null;
}
} 

public Object fetch(String address) {
try {
URL url = new URL(address);
Object content = url.getContent();
return content;
}
catch(Exception e) {
e.printStackTrace();
}
return this;
}

Я пытаюсь просмотреть около 100 фотографий с URL в галерее. Но при просмотре примерно 10 фотографий возникла ошибка нехватки памяти. Что мне делать, чтобы избежать ошибки?

Я пытаюсь изменить getView (), как показано ниже.

@Override
public View getView(int position, View convertView, ViewGroup parent) {  
ImageView iv = new ImageView(mContext); 
InputStream is = (InputStream)this.fetch(URL);
Drawable photo = Drawable.createFromStream(is, "src");
iv.setImageDrawable(photo);
iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE);  
return iv; 
}

Проблема с памятью все еще существует. Сообщение об ошибке java.lang.OutOfMemoryError: размер растрового изображения превышает бюджет виртуальной машины в строке Drawable photo = Drawable.createFromStream (is, «src»); .

0
задан brian 16 December 2011 в 05:55
поделиться