Camera_概述与拍照:
在安卓中使用拍照功能有两种方式,一是调用已有的拍照应用;二是使用android的Camera对象直接操作相机,自己写代码来实现拍照功能。
如果是采用Camera的方式,相当于自己写了个拍照程序。直接使用Camera的好处是拍照界面可以完全自定义,UI风格可以和自己应用保持一致,但也要麻烦一些。
下面来介绍开发一个拍照程序的步骤,实现方法参考了谷歌android开发的官方文档。
整个步骤大概分为三步:
1.启动相机,其实就是打开摄像头。
2.生成摄像的预览图像。
3.拍照
为了完成上述的三个步骤,我们至少需要建立以下三个类,并新建这三个类的对象,他们之间通过一定的关联,就能完成最基本的拍照功能。
Camera对象:管理硬件camera的打开和关闭,触发拍照命令。
一个继承自的SurfaceView相机图像预览类:因为官方文档把这个自定义的SurfaceView类命名为CameraPreview,在此我也这样命名。该类负责在打开相机的时候在activity中显示采集到的图像预览效果。该过程和UI主线程是异步处理的,因此使用SurfaceView。
拍照数据捕获类:当用户点击某个按钮开始拍照的时候,需要有相应的方法能在拍照完成之后将图像数据捕获并存储,该类通过实现Camera.PictureCallback接口来完成捕获过程。
相机服务相关权限
<!--开启相机服务的权限-->
<uses-permission android:name="android.permission.CAMERA"/>
<!--录制视屏或音频的权限-->
<uses-permission andr