ondraw方法中位图的静态引用

时间:2018-10-28 03:23:53

标签: android surfaceview

我有一个i,在这里我想绘制一堆文本并绘制​​一个72px x 72px的png图像。图像始终绘制在SurfaceView上,但每2秒绘制在不同的位置。

创建对位图的静态引用(从该图像)并每次都使用它是一个坏主意吗?我一直在努力避免“初始化”位图的开销,因为它一直都是同一张图片。

2 个答案:

答案 0 :(得分:1)

内存管理中静态引用的问题是您需要自己收集垃圾。也就是说,您将需要回收位图,并在不再使用该位图时将其设置为空。

由于您在多个地方使用它,所以只要您对它小心,就可以了。

答案 1 :(得分:1)

我认为,与其使用静态引用,不如使用静态引用,最好在SurfaceView中使用实例引用,并在视图的onCreate()方法中对其进行初始化。这样,初始化就不成问题了(您将自动具有可用于加载图像的上下文)。此外,当视图本身被垃圾回收时,位图也会自动消失。

如果您每两秒钟创建一个新的SurfaceView,那就完全不同了。在这种情况下,静态引用可能有意义。但是我想知道您的应用程序设计。 :)