释放位图内存的正确方法

Proper way to release bitmap memory

我正在开发我的第一个 Android 应用程序。我有一个方法可以创建两个位图和 returns 第三个位图,它是第二个位图在第一个位图之上的叠加层。所以基本上,一旦创建了第三个位图,我就不需要这两个位图了。 我已经阅读了一些关于释放位图内存的帖子和文章,但我对如何处理它有点困惑。

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

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);
}

 selectedBitmap.recycle()

该方法常用于清除位图占用的内存。 不回收位图的缺点可能是 OOM(内存不足异常)