可能重复:
Android: Strange out of memory issue while loading an image to a Bitmap object
我在AsyncTask中的imageview上加载位图时出现以下错误:
Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
有任何帮助吗?
答案 0 :(得分:2)
观看今年谷歌i / o的内存管理会议可能会有所帮助: Memory management for Android Apps在这里,Patrick Dubroy解释了一些可能导致内存泄漏的情况(特别是通过静态成员保持对应用程序上下文的长期引用)。他还谈到了垃圾收集器。
答案 1 :(得分:0)
我遇到了同样的问题。 我解决了重新采样位图以降低分辨率的问题,然后使用imageView.clearAnimation();之前在imageView上加载新的位图。 如果这对你有帮助,请投票给我。 问候。 注意:在以下示例中,数据包含摄像机图像选择器的新图像数据, imageView 是我们的ImageView。
Bitmap photo=null;
imageView.clearAnimation();
Uri photoUri = data.getData();
InputStream imageStream = null;
try {
imageStream = getContentResolver().openInputStream(photoUri);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPurgeable = true;
options.inSampleSize=2;
Rect outPadding= new Rect(-1, -1, -1, -1);
photo = BitmapFactory.decodeStream(imageStream, outPadding, options);
imageView.setImageBitmap(photo);