同系列文章:
SurfaceView为什么不能做动画?
SurfaceView+MediaPlayer实现视频播放
本文目录
- 笔试题解析
- 有了SurfaceView,为什么还要提供一个GLSurfaceView?
- SurfaceView有哪些用途?
笔试题解析
下面是属于GLSurfaceView特性的是( )
A. 让渲染器在独立的线程里运作,和UI线程分离。
B. 可以直接从内存或者DMA接口取得图像数据。
C. 管理一个surface,这个surface就是一块儿特殊的内存,能直接排版到android的视图view上。
D. 管理一个EGL display,它能让opengl把内容渲染到上述的surface上。
开发指南里关于GLSurfaceView的详细说明:
https://developer.android.google.cn/reference/android/opengl/GLSurfaceView
从下面的截图可以看到:
上图的英文第1条对应的是 C选项。英文第2条对应的是D选项。英文第4条是A选项。所以选择ACD。
有了SurfaceView,为什么还要提供一个GLSurfaceView?
官网有句话:An implementation of SurfaceView that uses the dedicated surface for displaying OpenGL rendering.
中文意思是:SurfaceView的一种实现,它使用专用surface来显示OpenGL渲染。
所以,GLSurfaceView 继承自SurfaceView, 适用于OpenGL渲染。
SurfaceView有哪些用途?
显示视频、相机预览、显示OpenGL。
- 显示视频:VideoView 继承自SurfaceView
- 相机预览:一般继承SurfaceView ,自定义一个预览显示器。参考官网:https://developer.android.google.cn/guide/topics/media/camera?hl=zh-cn#java
- 显示OpenGL:GLSurfaceView