【问题标题】:Recycle the Bitmap of a BitmapShader回收 BitmapShader 的 Bitmap
【发布时间】:2019-09-05 10:10:16
【问题描述】:

回收/释放BitmapShader 的位图的正确(推荐)方法是什么?

我们是否应该保留位图的引用,一旦 BitmapShader 不再使用,然后调用 bitmap.recycle()?

查看 BitmapShader 源代码,它清楚地表明该类不会对位图执行任何类型的释放,但它保留了一个引用以避免垃圾收集,因为大部分实现都是在本机代码中。

【问题讨论】:

    标签: android bitmap recycle bitmapshader


    【解决方案1】:

    经过一些研究,我发现位图仍然必须被回收,因为 BitmapShader 不会对其执行任何释放。

    继续的方法是确保 BitmapShader 不再被任何其他类使用。因此,例如,如果 BitmapShaderPaint 实例使用,例如 paint.setShader(bitmapShader),那么在回收位图之前,删除着色器引用,如 paint.setShader(null)

    一旦确保 BitmapShader 没有被使用并且根本不会被重复使用,然后像往常一样回收位图。

    【讨论】:

      猜你喜欢
      • 2011-10-23
      • 2012-10-05
      • 2023-03-19
      • 2016-05-24
      • 2011-07-16
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      相关资源
      最近更新 更多