我的代码:
@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;
}
Run Code Online (Sandbox Code Playgroud)
我尝试在图库中查看大约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;
}
Run Code Online (Sandbox Code Playgroud)
内存问题仍然存在.错误消息java.lang.OutOfMemoryError: bitmap size exceeds VM budget在线Drawable photo = Drawable.createFromStream(is, "src");.
| 归档时间: |
|
| 查看次数: |
3401 次 |
| 最近记录: |