2

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

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

但是 SurfaceView 怎么样?似乎postInvalidate()可以用它来调用它的重绘。但是我可以把图形逻辑放在哪里?

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

4

1 回答 1

1

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

于 2013-04-20T21:02:44.877 回答