项目中使用到了自定义camera,并实现手势缩放和自动对焦。
一、首先来看看官方文档
goole给出了10个步骤,那么我们按照这十个步骤来实现自定义camera。
二、自定义camera要使用到的类
Camera 相机类,详情参照官方文档
Camera.Parameters Camera的参数设置,如:对焦、闪光灯
SurfaceView 预览Camera镜头的取景
SurfaceHolder surface的抽象接口,来控制surface的尺寸和格式
SurfaceHolder.Callback 控制该接口的客户端能够接收surface改变的信息
三、demo实现
1.布局文件
FrameLayout来填充Surface
一个前、后置转换ImageView和一个拍照ImageView
2.Surface类的实现
创建一个Activity继承SurfaceView并实现SurfaceHolder.Callback接口
(1)构造方法
(2)三个Override的方法
(3)相机参数初始化
(4)释放相机
(5)重置相机
(6)方向控制
3.CameraActivity的实现
(1)将CameraPreview填充到FrameLayout
context= CameraActivity.this;
context一定要这样获取,使用
Context context;
方式获取会出错
(2)初始化相机
(3)对焦代码较多,就不截图了,直接上传文件,源文件可以直接使用到自定义Camera中
需要注意的是,实现缩放,必须给cameraPreview设置两个监听事件,一个是setOnClickListener,一个是setOnTouchListener
(4)demo已经提交到github上了
CustomCamera 点击下载demo