- 首页 »
- 资源下载
- »
- Android培训中心
- »
- 技术文章
Surfaceview 与普通View 的差别
[来源] 达内 [编辑] 达内 [时间]2012-10-16
Surface 是Z-order(Z序实际定义了窗口的层叠顺序),因此可以在窗口之下而持有SurfaceView; SurfaceView将会在窗口占有一块区域以显示它的视图。View层级将很好地与显示在View层级上的Surface进行合成。这个能用于叠加比如说Button 能够放置在Surface 之上
SurfaceView 提供了一个专用的嵌入View层级内部的绘制接口。你可以控制surface的格式,比如它的大小。SurfaceView 将会被放置在屏幕的合适位置。
Surface 是Z-order(Z序实际定义了窗口的层叠顺序),因此可以在窗口之下而持有SurfaceView; SurfaceView将会在窗口占有一块区域以显示它的视图。View层级将很好地与显示在View层级上的Surface进行合成。这个能用于叠加比如说Button 能够放置在Surface 之上,但要主要这个有性能影响,每次surface改变,将要进行一次完整的合成。
使用SurfaceView是为了提供一个专用的视图,用于呈现OpenGL 渲染。
一个GLSurfaceView将提供如下特征:
1. 管理一个视图, 其实就是一块内存,用于和Android view System进行合成。
2. 管理EGL Display。这个是用于使OpenGL能够绘制到一个Surface中。
3. 接受用户自定义的渲染对象来做实际的渲染。
4. 渲染是另起一个线程,由于从UI线程解藕以提高渲染性能。
5. 支持命令和持续性渲染。
6. 可选调试Opengl调用