重新启动 Android 相机后 GLSurfaceView 显示异常,有许多小单元格
GLSurfaceView display abnormal with many small cells after relaunching the Android Camera
使用GLSurfaceView
显示相机预览数据,如果我进行以下操作,会出现预览异常(如下截图):
- 启动应用并打开相机
- 按HOME键
- 重新启动应用程序并打开相机
最后,我找到了如下解决方案:
在实现 GLSurfaceView.Renderer
的 CameraGLRender
中,在 onSurfaceChanged
中做一些事情
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(0, width, 0, height, -10f, 10f);
gl.glViewport(0, 0, width, height);
// ...
}
它工作正常。
使用GLSurfaceView
显示相机预览数据,如果我进行以下操作,会出现预览异常(如下截图):
- 启动应用并打开相机
- 按HOME键
- 重新启动应用程序并打开相机
最后,我找到了如下解决方案:
在实现 GLSurfaceView.Renderer
的 CameraGLRender
中,在 onSurfaceChanged
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(0, width, 0, height, -10f, 10f);
gl.glViewport(0, 0, width, height);
// ...
}
它工作正常。