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

下一篇: Bitmap load outofmemory android