java - 在 2 个 Activity 中重用 GLsurfaceView

标签 java android opengl-es

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

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

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

实现这一目标的正确方法是什么?

最佳答案

阅读此 Android 文档页面: GLSurfaceView

它确实说:

Activity Life-cycle
A GLSurfaceView must be notified when the activity is paused and resumed. GLSurfaceView clients are required to call onPause() when the activity pauses and onResume() when the activity resumes. These calls allow GLSurfaceView to pause and resume the rendering thread, and also allow GLSurfaceView to release and recreate the OpenGL display.

因此我建议您执行以下操作:

private GLSurfaceView mGlSurface;

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

    mGlSurface.onResume();
}

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

    mGlSurface.onPause();
}

希望这有帮助。

关于java - 在 2 个 Activity 中重用 GLsurfaceView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027358/

相关文章:

java - 有没有办法在 JVM 或 Dalvik 的运行时将 CPU 使用率限制为一定百分比?

android - 从 tablayout 中的每个选项卡获取 EditText 的值

java - 遍历 GroupView 的所有子项?

opengl-es - 具有漫反射和法线贴图纹理的 3D 模型

java - oracle blob数据迁移到Amazon s3

java - 跳过继承树中的类实现

android - 以编程方式将 ABOVE 添加到 LayoutParams 会导致 View 高度为 0

c# - UWP 对 opengl 的支持

android - 如何在 OPENGL ANDROID 中根据 x,y 坐标显示和移动图像

java - 在 Java 中延迟重试的最佳方法