【发布时间】:2015-05-04 15:46:41
【问题描述】:
我正在使用 openGL ES 创建一个 Android 应用程序,但遇到以下问题:
当我最小化应用程序,然后重新打开它时,我的 GLSurfaceView.Renderer 中的 onSurfaceChanged 被调用了 2 次。
我在 onSurfaceChanged 中有以下代码(以及 onSurfaceCreated,onDrawFrame 中的类似代码):
Log.e("onSurfaceChanged",Integer.toString(width)+" "+Integer.toString(height));
所以我得到以下日志:
onSurfaceCreated onSurfaceChanged 480 800 onDrawFrame onSurfaceChanged 480 800 onDrawFrame onDrawFrame onDrawFrame onDrawFrame onDrawFrame onDrawFrame (...)当我最小化时,将屏幕方向从纵向更改为横向,然后重新打开,onSurfaceChanged 被调用 3 次。日志是:
onSurfaceCreated onSurfaceChanged 480 800 onDrawFrame onSurfaceChanged 480 800 onDrawFrame onDrawFrame onDrawFrame onSurfaceChanged 800 480 onDrawFrame onDrawFrame onDrawFrame onDrawFrame onDrawFrame onDrawFrame (...)我的问题:这是一个错误吗?在我的应用程序中还是 Android 错误?有一种方法可以只调用一次 onSurfaceChanged 吗? (因为在 onSurfaceCreated 我正在执行减慢应用程序的代码)
提前致谢
【问题讨论】:
-
检查这个答案 - stackoverflow.com/a/19067259/2514069。不是同样的问题,但它很接近。
标签: android opengl-es-2.0 screen-orientation