我有一个自定义视图,代表带有多个图块的简单游戏板。我有一个2维数组,用于存储当前显示的图像(0表示无图像)。
目前在我的onDraw()
方法中,我遍历数组并显示图块的图像。但是,我唯一一次调用invalidate()
没有任何args是我重置电路板的时候。在所有其他地方,我只为需要更新的所需磁贴调用invalidate(Rect)
。
以上onDraw()
的实施是否有效地绘制了视图?如果是这样,那么更好的方法是什么? (也调用invalidate(Rect)保证仅更新'Rect'区域或者这只是对Android的推荐,可能会被忽略?)。
赞赏任何澄清。
答案 0 :(得分:0)
上面
onDraw()
的实现是否有效地绘制了视图?
这很好。否则,您希望学习OpenGL以在图纸中使用硬件加速,但所有这些都取决于您的图块是否每帧都在变化或者您有多少图块。
也调用invalidate(Rect)保证仅更新'Rect'区域或者这只是对Android的推荐可能会被忽略?
它更新Rect
区域,实际上Romain Guy使用invalidate(Rect)
作为默认的主启动器应用程序,以便每次主屏幕需要更新时都不会更新整个屏幕。