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. 应用:相机的预览。视频的播放。游戏画面展示