前言
首先需要用到的是一个叫Camera类的,更新的一个叫Camera2的类。
Camera2是从 SDK 5.0(API Level 21)开始才被引入的。里面的方法有些还是比原来的方便许多的,但是,用户系统版本参差不齐,所以暂时还是使用Camera来进行开发。
SufaceView
这个View可以直接重内存或者DMA等硬件接口获取所得的图像数据,是个非常重要的绘图容器,所以,开发相机应用一般都是使用它。
SurfaceView可以在主线程之外的线程中向屏幕绘图,这样可以避免画图任务繁重的时候,造成主线程的阻塞,从而提高了程序的反应速度。
使用SurfaceView,一般要实现一个SurfaceHolder.Callback接口,通过此接口。因为使用SurfaceView,所有的绘图工作必须得在Surface被创建之后才能开始,而在Surface被销毁之前必须结束,所以Callback中的surfaceCreated和surfaceDestroyed就变成了绘图处理代码的边界。
需要重写的方法:
surfaceChanged(SurfaceHolder holderformatwidthheight){}
surfaceCreated(SurfaceHolder holder){}
surfaceDestroyed(SurfaceHolder holder) {}
SurfaceHolder,可以把它看成是surface的控制器,用来操纵surface。处理它的Canvas上画的效果和动画,控制表面,大小,像素等等。
一般步骤:
检测并访问摄像头,