onDraw()有效的自定义视图设计

时间:2011-07-11 07:08:12

标签: android

我有一个自定义视图,代表带有多个图块的简单游戏板。我有一个2维数组,用于存储当前显示的图像(0表示无图像)。

目前在我的onDraw()方法中,我遍历数组并显示图块的图像。但是,我唯一一次调用invalidate()没有任何args是我重置电路板的时候。在所有其他地方,我只为需要更新的所需磁贴调用invalidate(Rect)

以上onDraw()的实施是否有效地绘制了视图?如果是这样,那么更好的方法是什么? (也调用invalidate(Rect)保证仅更新'Rect'区域或者这只是对Android的推荐,可能会被忽略?)。

赞赏任何澄清。

1 个答案:

答案 0 :(得分:0)

  

上面onDraw()的实现是否有效地绘制了视图?

这很好。否则,您希望学习OpenGL以在图纸中使用硬件加速,但所有这些都取决于您的图块是否每帧都在变化或者您有多少图块。

  

也调用invalidate(Rect)保证仅更新'Rect'区域或者这只是对Android的推荐可能会被忽略?

它更新Rect区域,实际上Romain Guy使用invalidate(Rect)作为默认的主启动器应用程序,以便每次主屏幕需要更新时都不会更新整个屏幕。