【问题标题】:Proper way to release bitmap memory释放位图内存的正确方法
【发布时间】:2018-08-11 09:24:01
【问题描述】:

我正在开发我的第一个 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);
}

【问题讨论】:

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


    【解决方案1】:

     selectedBitmap.recycle()

    方法总是在你想清除位图占用的内存时使用。 不回收位图的缺点可能是OOM(内存不足异常)

    【讨论】:

      猜你喜欢
      • 2012-01-22
      • 1970-01-01
      • 2023-03-11
      • 2015-06-21
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      • 2019-01-20
      • 2020-06-23
      相关资源
      最近更新 更多