ondraw 方法中位图的静态引用
static reference for bitmap in the ondraw method
我有一个 SurfaceView
,我喜欢在其中绘制一堆文本并绘制 72px x 72px 的 png 图像。图像始终绘制在 SurfaceView
上,但每 2 秒在不同的位置绘制一次。
创建位图的静态引用(从该图像)并每次都使用它是不是个好主意?我试图避免 "initialising" 位图的开销,因为它一直都是相同的图像。
内存管理中静态引用的问题是你需要自己收集垃圾。即,您需要回收位图,并在不再使用后立即将其设为空。
既然是多处使用,只要用心一点应该没问题。
我认为,在 SurfaceView
中使用实例引用并在视图的 onCreate()
方法中初始化它会比静态引用更好。这样,初始化就不是问题(您自动拥有可用于加载图像的上下文)。此外,当视图本身被垃圾回收时,位图会自动消失。
如果您每两秒创建一个新的 SurfaceView
,那就另当别论了。在这种情况下,静态引用可能有意义。但我想知道你的应用程序设计。 :)
我有一个 SurfaceView
,我喜欢在其中绘制一堆文本并绘制 72px x 72px 的 png 图像。图像始终绘制在 SurfaceView
上,但每 2 秒在不同的位置绘制一次。
创建位图的静态引用(从该图像)并每次都使用它是不是个好主意?我试图避免 "initialising" 位图的开销,因为它一直都是相同的图像。
内存管理中静态引用的问题是你需要自己收集垃圾。即,您需要回收位图,并在不再使用后立即将其设为空。
既然是多处使用,只要用心一点应该没问题。
我认为,在 SurfaceView
中使用实例引用并在视图的 onCreate()
方法中初始化它会比静态引用更好。这样,初始化就不是问题(您自动拥有可用于加载图像的上下文)。此外,当视图本身被垃圾回收时,位图会自动消失。
如果您每两秒创建一个新的 SurfaceView
,那就另当别论了。在这种情况下,静态引用可能有意义。但我想知道你的应用程序设计。 :)