Android自定义相机开发

来源:互联网 发布:佛山美工设计 编辑:程序博客网 时间:2024/05/16 16:02

Android自定义相机开发

入门第一个接手的项目,如今重新拾起来整理一下。


1.添加相关权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.CAMERA"/>

2.拍照原理

(1)拍照流程

  1. 检测camera的存在并访问camera
    通过open(int)方法获取camera的实例,int为camera的id
    使用getParameters()获取相机当前的设置,包括预览尺寸,拍照尺寸等等参数
    如果修改了相关设置,调用setParameters(Camera.Parameters)将更改的信息重新生效
  2. 继承SurfaceView并添加SurfaceHolder接口以显示预览画面
    有需要的话使用setDisplayOrientation(int)来改变预览画面的方向
    使用setPreviewDisplay(SurfaceHolder)传递一个完整初始化的SurfaceHolder,没有surface,就没法启动预览画面
  3. 为预览画面添加你需要的布局和控件
    在拍照之前先调用startPreview()来更新预览画面
  4. 增加对拍照事件的监听
    调用takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback)进行拍照,在回调函数中获得照片对象并做处理
  5. 使用拍照功能并保存照片
    预览画面会在拍照后关闭,如果还需要拍照,记得先startPreview()
    用stopPreview()来关闭预览画面
  6. 最后要释放camera
    camera使用之后一定要调用release()释放掉

(2)

3.参数解析

4.结尾