GLSurfaceView 获取surface
时间: 2023-09-06 18:14:05 浏览: 278
要在 `GLSurfaceView` 中获取对应的 `Surface`,可以通过以下步骤进行操作:
1. 在 `GLSurfaceView` 的创建过程中,设置一个 `GLSurfaceView.Renderer` 的实现类,并重写 `onSurfaceCreated()` 方法:
```java
GLSurfaceView glSurfaceView = new GLSurfaceView(context);
glSurfaceView.setRenderer(new MyRenderer());
```
2. 在自定义的渲染器类中,重写 `onSurfaceCreated()` 方法,并获取 `SurfaceHolder` 对象:
```java
public class MyRenderer implements GLSurfaceView.Renderer {
private Surface surface;
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
// 获取SurfaceHolder对象
SurfaceHolder surfaceHolder = getHolder();
// 获取Surface对象
surface = surfaceHolder.getSurface();
// 进行其他操作
}
// 其他方法省略...
}
```
通过以上步骤,你可以在自定义的渲染器中获取到对应的 `Surface` 实例,并进行相关的操作。请注意,需要在适当的时机获取 `Surface` 的引用,例如在 `onSurfaceCreated()` 方法中获取。
阅读全文