Java 所有Android游戏都使用单一画布吗?
是否应该在每个onDraw()过程中重新绘制所有视图对象? 我来自Flash背景,所以我最初的想法是在一个层/画布上绘制静态背景图像,然后在其上创建另一层以处理更多活动动画,但这似乎对设置不太实际。是不是我的思路在Android的观点背后。onDraw()在这里被误导了,这是不是我不应该担心的事情 编辑:为了进一步阐述我试图通过onDraw()的概念了解的内容-是否有一种方法可以在SurfaceView/视图上使用多个画布作为层,以便我可以在每个画布上手动绘制(以最小化需要“重绘”的内容),而无需在其他画布上“重绘”图形,或者SurfaceView/View的onDraw()对于更新任何视觉更改(在这种情况下,所有内容都“重新绘制”到屏幕上)是绝对必要的吗 Q:是否应该在每个onDraw()过程中重新绘制所有视图对象 答:不,不一定 另外:一定要看看SurfaceView: Q:是否应该在每个onDraw()过程中重新绘制所有视图对象 答:不,不一定 另外:一定要看看SurfaceView: 好吧,除了Java 所有Android游戏都使用单一画布吗?,java,android,view,android-canvas,Java,Android,View,Android Canvas,是否应该在每个onDraw()过程中重新绘制所有视图对象? 我来自Flash背景,所以我最初的想法是在一个层/画布上绘制静态背景图像,然后在其上创建另一层以处理更多活动动画,但这似乎对设置不太实际。是不是我的思路在Android的观点背后。onDraw()在这里被误导了,这是不是我不应该担心的事情 编辑:为了进一步阐述我试图通过onDraw()的概念了解的内容-是否有一种方法可以在SurfaceView/视图上使用多个画布作为层,以便我可以在每个画布上手动绘制(以最小化需要“重绘”的内容),而无
画布
之外,可能不是所有的都可以被视为场景。我使用一个Toon
类,它包含一个X
、Y
坐标、Rect
hitbox和一个可绘制的
。此类Toon
还有一个方法:
public draw(Canvas c) {
mDrawable.setBounds(mHitBox);
mDrawable.draw(c);
}
然后,在游戏循环中的onDraw(Canvas c)
方法中,我只需循环所有Toon
对象,并对它们调用draw(c)
方法。尽量不要在onDraw
中操纵对象,理想情况下,这些对象只能被绘制。好吧,除了画布之外,可能不是所有的都可以被视为场景。我使用一个Toon
类,它包含一个X
、Y
坐标、Rect
hitbox和一个可绘制的
。此类Toon
还有一个方法:
public draw(Canvas c) {
mDrawable.setBounds(mHitBox);
mDrawable.draw(c);
}
然后,在游戏循环中的onDraw(Canvas c)
方法中,我只需循环所有Toon
对象,并对它们调用draw(c)
方法。尽量不要在onDraw
中操纵对象,理想情况下应该只绘制对象。谢谢Paul,这似乎是我需要的方向。然而,在经历了涉及到SurfaceView的过程之后,它仍然提出了一些问题,因为看起来他们在SurfaceView上使用单个onDraw()调用其他对象的onDraw(),并同时有效地重新绘制所有内容。这仅仅是“刷新”应用程序图形的正常过程,还是有一种方法可以使多个“分层”曲面可以单独绘制?谢谢Paul,这似乎是我需要的方向。然而,在经历了涉及到SurfaceView的过程之后,它仍然提出了一些问题,因为看起来他们在SurfaceView上使用单个onDraw()调用其他对象的onDraw(),并同时有效地重新绘制所有内容。这只是“刷新”应用程序图形的正常过程,还是有一种方法可以让多个“分层”曲面单独绘制?