Android View之SurfaceView

SurfaceView 使用

1. 继承SurfaceView

2. 实现SurfaceCallBack 并重写三个方法

surfaceCreated 创建

surfaceChanged 改变

surfaceDestroy 销毁

3.获取SurfaceHodler getHolder();

4.添加监听

holder.addCallBack(this);

5.可以通过holder获取SurfaceView 可绘制的 画布对象

holder.lockCanvas();

获取画布对象进行绘制 绘制后 将画布解锁并提交

holder.unLockCanvasAndPost(canvase);

SurfaceView: 一个 继承与View 的视图类

这个视图里面内置嵌套了一个surface

你可以控制surface 的尺寸与位置 通过SurfaceView

surface 是一个纵向排序的

他始终会在 surfaceView 的 后面 或者说是 Window 的底端

surfacView 会对其进行遮挡 但是SurfaceView 会提供一部分 可见区域 该区域的 surface可见

surface 的 兄弟视图 都会在顶端展示

我们可以通过SurfaceHolder对Surface 进行访问

当SurfaceVie可见的时候 Surface被创建 等等

Surface 的 绘制 单独存在着一个渲染绘制的线程 (非UI线程)

确保绘制大量工作的同时保证 程序不出现线程阻塞的问题

如果holder要对sureface进行操作的话 那么

必须在 surfaceCreated 与surfaceDestroy 方法之间执行

SurfaceView

可以直接从内存或者硬件中直接获取图像数据信息并展示的View 承载图像的绘制容器

特点:1. 在单独的线程中进行绘制(非UI线程) 减少线程阻塞

2. 应用:相机的预览。视频的播放。游戏画面展示

猜你喜欢

转载自blog.csdn.net/Star_cmx/article/details/88879230