我用两种方式编写了相同的程序。
一个使用Surfaceview,另一个使用自定义视图。根据android SDK开发指南,使用表面视图更好,因为您可以生成一个单独的线程来处理图形。 SDK开发指南声称,使用带有无效调用的自定义视图仅适用于较慢的动画,不太强烈的图形。
但是,在我的简单应用中,我可以清楚地看到,使用带有无效调用的自定义视图似乎渲染速度更快。
你们有什么了解/想到这个?
我的touchEvent代码完全相同,我的绘图代码完全相同。唯一的区别是一个都在UI线程中,另一个是使用脚踏来处理绘图。
答案 0 :(得分:2)
SurfaceView可以使用2个缓冲区进行绘制,你的自定义视图怎么样?
另一件事:您提到文档说invalidate
可以在较慢的动画/不太强烈的图形上快速运行。你的“简单应用”有多激烈?您应该尝试进行压力测试,并考虑单个线程如何处理您的触摸输入。
我的游戏中有3个主题。一个用于游戏逻辑,一个用于绘图,然后是“普通”UI线程...