我正在尝试实现下面的代码,将图像路径转换为位图以显示在我的活动上。我收到以下错误。我尝试过一系列不同的解决方案,但没有一个正在运作
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());
}
答案 0 :(得分:1)
您可以考虑以更及时的方式加载它们,或使用位图工厂的inSampleSize
选项(即,您将BitmapFactory.Options
传递给工厂inSampleSize
设置为理想情况下,2的幂。另外,请确保将inPurgeable
设置为true。
如果您从MediaStore
的{{1}}中提取这些图片,您还可以使用thumbnails。
也许您可以告诉我们有关您的用例的更多信息,以便我们提供更好的帮助。
答案 1 :(得分:0)
您正在尝试加载多个大型位图,其中至少有一个是大约12MB。它们太大了。你发布的解决方案是有效的。将位图的大小调整为更小的值,尤其是当您只是在屏幕上显示位图时。