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调用

资源下载