我正在开发需要扩展SurfaceView的应用程序。 现在,我在重新绘制视图时遇到了一些问题。

对于普通的android.view.View,我将覆盖onDraw()方法,将所有图形登录名都放在此方法中。 并在需要重绘时调用invalidate()方法。

但是SurfaceView呢? 似乎postInvalidate()可用于调用其重绘。 但是我可以在哪里放置图形逻辑呢?

我应该将graphci登录名放到Surface.Callback.surfaceCreated()吗? 如果是这样,当我调用方法postInvalidate() ,它会在内部调用surfaceCreated()吗? 如果没有,该如何解决?

===============>>#1 票数:1 已采纳

对于SurfaceView,您应该创建第二个类,该类将创建一个用于管理游戏玩法和渲染的后台线程,以便在渲染时它将锁定屏幕,因此没有任何东西可以中断它,并且您将图形逻辑放在扩展SurfaceView的第一类上。 下面的链接似乎在其中详细介绍了示例代码。 http://www.mathcs.org/java/android/game_surfaceview.html

  ask by hguser translate from so

未解决问题?本站智能推荐: