在2个活动中重复使用GLsurfaceView

时间:2011-02-17 09:54:54

标签: java android opengl-es

我正在开发一个OpenGL ES项目,新手体育场,所以我有一个关于GLSurfaceView和Renderer实现的问题。 我有一个包含FrameLayout中的GLSurfaceView的布局,我用它来显示渲染的动画(动画在我自己的渲染器实现中渲染)。

所有这些都发生在一个活动中。

然后我需要开始另一个活动,但是为了使用相同的View和相同的Renderer,我尝试在新活动中创建新的GLSurfaceView(也在FrameLayoyt中,与第一个Activity相同),但它立即崩溃。所以我认为我必须重用我在第一个活动中使用的GLSurfaceView和Renderer。

获得此权利的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

阅读此Android文档页面: GLSurfaceView

确实说:

  

活动生命周期
  当活动暂停并恢复时,必须通知GLSurfaceView。 GLSurfaceView客户端需要在活动暂停时调用onPause(),并在活动恢复时调用onResume()。这些调用允许GLSurfaceView暂停和恢复渲染线程,并允许GLSurfaceView释放并重新创建OpenGL显示。

所以我建议你做以下事情:

private GLSurfaceView mGlSurface;

@Override
protected void onResume() {
    super.onResume();

    mGlSurface.onResume();
}

@Override
protected void onPause() {
    super.onPause();

    mGlSurface.onPause();
}

希望得到这个帮助。