Android:SurfaceView,为什么要在不同的线程上绘图

时间:2012-07-17 08:36:35

标签: java android multithreading surfaceview

SurfaceView:据我所知,SurfaceView正在使用不同的线程(使用SurfaceHolder.Callback())。

在一个Android游戏项目中,我在SurfaceView类中看到:它们在同一个类中处理物理(位置,...),但是当处理图形(绘图到屏幕)时,它们使用另一个线程来处理。 Android示例Landern也使用了此模型。

请告诉我这个型号有哪些优点? (表示使用另一个线程绘制到屏幕而不是在SurfaceView的同一个线程上绘图)。

谢谢:)

1 个答案:

答案 0 :(得分:2)

从我有限的经历:

如果你绘制一个单独的线程,你可以在“主”线程中进行更复杂的计算等时保持“背景动画”(移动水,gras,燃烧火焰)。

如果你在一个线程中完成所有操作,你基本上会在绘图时阻止所有移动,反之亦然,每个移动/计算块都会绘制。

优势取决于您想制作的whtt游戏。如果你制作一个没有任何特殊动画和效果的棋盘游戏,我猜你最好选择一个主题。