glsurfaceview 闪屏
时间: 2023-09-18 17:14:28 浏览: 161
【Android】使用GLSurfaceView+Canera预览+保存帧Bitmap
GLSurfaceView 闪屏问题可能是由于 GLSurfaceView 的初始化和渲染线程在不同的线程中导致的。为了解决这个问题,可以尝试以下几种方法:
1. 在 GLSurfaceView 的构造函数中添加以下代码:
```
setEGLConfigChooser(8, 8, 8, 8, 16, 0);
getHolder().setFormat(PixelFormat.TRANSLUCENT);
setZOrderOnTop(true);
```
这将设置 GLSurfaceView 的颜色格式为透明,并将其放在最顶层,以便在绘制前清除背景,从而避免闪烁。
2. 在 GLSurfaceView 的 Renderer 中添加以下代码:
```
glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
```
这将在每次绘制前清除颜色和深度缓冲区,并将背景颜色设置为透明。这样可以避免闪烁和残留的图像。
3. 如果以上两种方法都无效,可以考虑使用双缓冲技术,即使用两个帧缓冲区来绘制场景。在每次绘制时,将最新的场景绘制到一个缓冲区中,同时在另一个缓冲区中显示上一次绘制的场景。这样可以避免闪烁和残留的图像。
希望这些方法可以帮助你解决 GLSurfaceView 闪屏问题。
阅读全文