加载图像时出错 - “位图大小超过VM预算”

时间:2012-04-19 03:28:54

标签: java android

我一直收到此错误,错误指向此代码:

  

bitmap = BitmapFactory.decodeByteArray(pic1,0,pic1.length);

图片来自sqlite数据库,用户从手机目录中选择图片后存储。 当我想要检索图片时,我收到了错误。 从我的阅读来看,这是因为内存泄漏。 有什么建议/解决方案吗?

更新

在将图像保存到数据库之前添加下面的代码时问题解决了。

  

BitmapFactory.Options opt = new BitmapFactory.Options();

     

opt.inSampleSize = 8;

     

bitmap = BitmapFactory.decodeFile(path,opt);

感谢那些回复/回答:)

2 个答案:

答案 0 :(得分:0)

它可能来自内存泄漏,但可能是你只是在使用太多内存。大图像可以轻松消耗内存。如果遇到问题,请尝试缩小图像,看看是否仍然遇到这些错误。尝试使用内存分析器工具查找可能的泄漏。

答案 1 :(得分:0)

试试这个

BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inTempStorage = new byte[16*1024];

Bitmap bitmapImage = BitmapFactory.decodeFile(imgpath, opt);