Android 图像缩放导致内存溢出错误

Android 图像缩放导致内存溢出错误,android,android-image,Android,Android Image,当我从位图缩放图像时,应用程序将关闭。 所以我看到了tab LogCat。 我发现原因是内存溢出。 我不知道如何释放新创建的内存。 垃圾收集不起作用 代码如下: Runtime.getRuntime().freeMemory(); matrix.reset(); curScale += 0.02f; h = orgImage.getHeight(); w = orgImage.getWidth(); matrix.postScale(curScale, curScale); rtnB

当我从位图缩放图像时,应用程序将关闭。 所以我看到了tab LogCat。 我发现原因是内存溢出。 我不知道如何释放新创建的内存。 垃圾收集不起作用

代码如下:

Runtime.getRuntime().freeMemory();

matrix.reset();

curScale += 0.02f;

h = orgImage.getHeight();

w = orgImage.getWidth();

matrix.postScale(curScale, curScale);

rtnBitmap = Bitmap.createBitmap(orgImage, 0, 0, w, h, matrix, true);

curImageView.setImageBitmap(rtnBitmap);

calculate(-0.02f);
这里的问题是rtnBitmap。除了添加这个,我还使用了函数recycle。但它没有起作用。 我会等待你的帮助


谢谢。

使用rtnBitmap.recycle;在使用之前,如果它不是空的。

您是否尝试通过将所有引用它的变量设置为空来释放旧对象?图像位图有多大,没有压缩?另外,您运行的是什么设备,代码中是否有其他东西占用了大量内存?谢谢。如何释放旧对象?我知道java使用垃圾收集。因此,没有释放功能。我曾经使用image.recycle,但结果是一样的。缩小比例时,没有错误。我在while循环中使用了这个。当计数器超过3时,进程终止。是否没有其他方法可以使用image.createbitmap缩放图像?我用这个是因为我是android的新手。谢谢。我试图证明这一点。但当它运行的时候,它是一样的。我暂时用这个。当计数器超过3时,进程终止。还有其他方法可以缩放图像。不使用位图。是否创建位图?是。是的。我使用while循环开头的代码。但没有变化。