2

我有 2 ActivitiysOpenGL用于绘图。在从一个活动过渡到下一个活动时,我得到一个难看的空屏幕,上面充满了我的OpenGL清晰颜色(所以它不像黑屏那么糟糕)。

我希望在Activitys 之间有效地无缝过渡,但是在创建 a 时有几个高负载区域GLSurfaceView。主要问题是纹理加载,因为这是最慢的。

无论如何在Activitys 之间加倍缓冲,以便最后一个Activity视图被冻结,直到我明确告诉我的下一个Activity绘制?我希望过渡是无缝的?

将所有内容移到一个GLSurfaceView实例中并不是我真正想要考虑的选择。

4

2 回答 2

0

由于它的 OpenGL ES,在 Android 2.x 中很难做到这一点。此外,如果您在连续渲染中,不建议您在一个应用程序中使用两个 OpenGL。如果是这样,要轻松控制它们,您将需要 RENDERMODE_WHEN_DIRTY。

如果您在 Android 4.x 中使用它,TextureView 是可选的。

TextureView 与 GLSurfaceView 相同,但与 View 兼容,这意味着您可以将 ViewAnimation 用于 TextureView。

于 2012-11-20T01:32:06.053 回答
0

您可以setRenderMode( RENDERMODE_WHEN_DIRTY)在 GLSurfaceView 中使用,因此只有在您调用requestRender().
这样,您在调用另一个表面视图之前绘制的任何内容都只会在您请求新的绘制时被清除。
您可以通过将渲染模式设置为RENDERMODE_CONTINUOUSLY.

于 2012-11-13T19:01:03.090 回答