我查看了一些内存异常问题,但我无法找到解决问题的方法。我有一个处理图像的应用程序。我需要获取图像每个像素的RGB值。当我从whatsapp文件中选择图像时,我可以做到这一点,因为它们的尺寸很小,但如果我想从图库中选择图像(通过相机拍摄),或者如果我想直接从相机拍摄照片,我就会有超常的例外情况。我不想缩小图像因为我需要图像的所有像素信息。
我将图像的文件和名称信息作为字符串,我在解码字符串时遇到此异常,如下所示;
imgDecodableString = intent3.getStringExtra("BMP");
rotatedBitmap = BitmapFactory.decodeFile(imgDecodableString);
有没有办法解决这个问题? 提前谢谢。
答案 0 :(得分:0)
如果您在应用程序标记中的清单文件中使用此行代码,则Outofmemory异常将解决此问题。
机器人:largeHeap = “真”
答案 1 :(得分:0)
如果您不想缩小图像,可以使用BitmapRegionDecoder解码图像的每个部分并处理位图,而不是解码整个图像。
答案 2 :(得分:0)
您必须将可绘制图像的高分辨率转换为: drawable-xxhdpi 。 并在应用程序标记内的androidManifest.xml上添加: android:largeHeap =“ true”
我已经使用此方法解决了内存不足的问题