SurfaceView
首先需要明白什么是surface,在Android中可以先粗略地把它理解为是一个用来画图的地方;而surfaceview就是用来显示surface内容的地方。
为什么要使用surfaceview
一般的View控件例如imageview等,他将自己绘制在父窗口上,而父窗口会每间隔16ms刷新一次(现在高刷屏可能更短?),这意味着普通控件也是16ms刷新一次内容,如果在刷新期间能快速完成绘制工作,则没有问题;但是如果界面更新频繁,绘制复杂(例如相机预览时镜头画面一直在刷新),就容易造成界面卡顿,影响用户体验。而SurfaceView的UI是在一个独立的线程中绘制,不会占用主线程资源,就解决了这一问题。
SurfaceHolder
类似于surface与surfacview之间的连通器,提供访问与控制surfaceview对应的surface的方法,可以直接通过surfaceview的getholder方法,获得“对应的surface的对应的surfaceholder”;
获得surfaceho