Android自定义视图的高效绘制
Efficient drawing of Android custom view
我有一个 Android 自定义视图,显示从服务器下载的图像网格。图片在后台下载,图片下载完成后,添加到列表中,触发视图重绘。
所以每次下载图像时,我都会绘制背景,然后绘制列表中的图像。这种方法会导致出现一些闪烁。另外我发现只为一张新图像绘制所有图像效率很低。
是否可以在 OnDraw 事件之外的视图中绘制一些东西?因此我只会绘制新下载的图像,而不是整个列表。
使用 Windows 表单,我可以在 Paint 事件之外执行此操作:
Graphics g = this.CreateGraphics(); // this being a Control (<=> View), Graphics <=> Canvas
g.DrawSomething()
g.Dispose()
在Android中是否有类似的东西或者我的方法不正确?
你可以使用SurfaceView, if your drawing is frequent, this class should be considered, 是如何在SurfaceView
上绘制位图。
我有一个 Android 自定义视图,显示从服务器下载的图像网格。图片在后台下载,图片下载完成后,添加到列表中,触发视图重绘。
所以每次下载图像时,我都会绘制背景,然后绘制列表中的图像。这种方法会导致出现一些闪烁。另外我发现只为一张新图像绘制所有图像效率很低。
是否可以在 OnDraw 事件之外的视图中绘制一些东西?因此我只会绘制新下载的图像,而不是整个列表。
使用 Windows 表单,我可以在 Paint 事件之外执行此操作:
Graphics g = this.CreateGraphics(); // this being a Control (<=> View), Graphics <=> Canvas
g.DrawSomething()
g.Dispose()
在Android中是否有类似的东西或者我的方法不正确?
你可以使用SurfaceView, if your drawing is frequent, this class should be considered, SurfaceView
上绘制位图。