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上绘制位图。