我有一个大的内存问题:的OutOfMemoryError:Android的大位图的旋转(90°)
// in sourceImage is a big JPEG previously loaded
Matrix mat = new Matrix();
mat.postRotate(90);
Bitmap rotatedImage = Bitmap.createBitmap(sourceImage, 0, 0, sourceImage.getWidth(), sourceImage.getHeight(), mat, true);
我总是运行这段代码,我的应用程序崩溃,并且说“VM不会让我们分配XXXXXX字节”
你能帮我吗?
编辑:
我看到很多类似的问题在这里,但我不知道如何rotatating之前回收sourceImage ......(导致二审是大的同时保持它)
谢谢。
如果你的源图像很大,它已经消耗了太多的可用内存。在此操作之后,您将图像在内存中保存两次('sourceImage'和旋转后的版本'rotatedImage')。这可能太多了。请在这个网站上搜索“OutOfMemoryException”,这个问题已经被多次询问和回答。 – 2011-11-21 13:10:25
感谢您的评论,是的,我在这里看到很多类似的问题,但我想知道如何在RAM中不保存两个位图实例的情况下做到这一点。 – Lyra