回收BitmapShader的位图

时间:2019-04-15 12:14:15

标签: android bitmap recycle bitmapshader

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

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

查看BitmapShader源代码,它清楚地表明该类未对位图执行任何类型的释放,但由于大多数实现都是在本机代码中进行的,因此它保留了避免垃圾回收的引用。

1 个答案:

答案 0 :(得分:0)

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

进行的方式是确保 BitmapShader 不再被其他任何类使用。因此,例如,如果 Paint 实例使用了 BitmapShader ,例如 paint.setShader(bitmapShader),则在回收位图之前,删除 paint.setShader(null)之类的着色器引用。

确保未使用 BitmapShader ,并且根本不会再使用它,然后照常回收位图。