获取错误:此过程的外部分配太大

时间:2012-04-03 21:30:07

标签: android bitmap

我正在尝试实现下面的代码,将图像路径转换为位图以显示在我的活动上。我收到以下错误。我尝试过一系列不同的解决方案,但没有一个正在运作

Strange out of memory issue while loading an image to a Bitmap object

Android: Resize a large bitmap file to scaled output file

OutOfMemoryError: bitmap size exceeds VM budget :- Android

错误: E / dalvikvm-heap(19252):12742656字节外部分配对于此过程来说太大了。

for(int i = 0; i < numItems; i++) {

     File imgFile = new  File(photoPaths.get(i));

        if(imgFile.exists())
        {

             images[i] = BitmapFactory.decodeFile(imgFile.getAbsolutePath());


        }

2 个答案:

答案 0 :(得分:1)

您可以考虑以更及时的方式加载它们,或使用位图工厂的inSampleSize选项(即,您将BitmapFactory.Options传递给工厂inSampleSize设置为理想情况下,2的幂。另外,请确保将inPurgeable设置为true。

如果您从MediaStore的{​​{1}}中提取这些图片,您还可以使用thumbnails

也许您可以告诉我们有关您的用例的更多信息,以便我们提供更好的帮助。

答案 1 :(得分:0)

您正在尝试加载多个大型位图,其中至少有一个是大约12MB。它们太大了。你发布的解决方案是有效的。将位图的大小调整为更小的值,尤其是当您只是在屏幕上显示位图时。