小编And*_*rew的帖子

onSurfaceChanged两次调用

我正在使用openGL ES创建一个Android应用程序,我有以下问题:

当我最小化应用程序,然后重新打开它时,在我的GLSurfaceView.Renderer中的onSurfaceChanged被调用2次.

我在onSurfaceChanged中有以下代码(和onSurfaceCreated,onDrawFrame中的类似代码):

Log.e("onSurfaceChanged",Integer.toString(width)+" "+Integer.toString(height));
Run Code Online (Sandbox Code Playgroud)

所以我得到以下日志:

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中我正在执行减慢应用程序的代码)

提前致谢

android screen-orientation opengl-es-2.0

5
推荐指数
1
解决办法
1579
查看次数