java.lang.OutOfMemoryError:位图大小超过VM预算
可能重复:
Android:将图像加载到Bitmap对象时出现内存不足的问题
当我在AsyncTask中的imageview上加载位图时出现以下错误:
Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
有什么帮助吗?
观看今年谷歌I / O的内存管理会话可能会有帮助:Android应用程序的内存管理在此,Patrick Dubroy解释了一些可能导致内存泄漏的情况(特别是通过静态成员保留对应用程序上下文的长期引用)。 他还谈到垃圾收集器。
我有同样的问题。 我解决了重新采样位图以降低分辨率的问题,然后使用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);
链接地址: http://www.djcxy.com/p/93101.html
上一篇: java.lang.OutOfMemoryError: bitmap size exceeds VM budget