释放位图内存的正确方法

时间:2018-08-11 09:24:01

标签: android memory-management bitmap android-bitmap bitmapfactory

我正在开发我的第一个Android应用程序。我有一个创建两个位图并返回第三个位图的方法,该图是第二个位图在第一个位图之上的覆盖图。因此,基本上,一旦创建了第三个位图,我就不需要两个位图。 我已经阅读了一些有关释放位图内存的帖子和文章,但对如何处理它有点困惑。

我必须自己释放位图吗?如果是,这样做的正确方法是什么?方法完成后它们会被释放吗?我应该让垃圾收集器释放它吗?

public static Bitmap bitmapResizeOverlay(Context context, Uri selectedImage, int maxWidth,
                                         int maxHeight, @DrawableRes int overlayImageResource) {
    Bitmap selectedBitmap = bitmapResize(context, selectedImage, maxWidth, maxHeight);
    Bitmap overlayBitmap = BitmapFactory.decodeResource(context.getResources(), overlayImageResource);
    return overlayBitmapToBottom (selectedBitmap, overlayBitmap);
}

1 个答案:

答案 0 :(得分:1)

 selectedBitmap.recycle()

要清除位图占用的内存时,始终使用

方法。 不回收位图的不利方面可能是OOM(内存不足)