time 
设为首页】【收藏本站
当前位置: 主页 > 电脑网络 > 操作系统 > 嵌入式 > Android > Android应用开发入门(六十四)使用Camera拍摄照片示例

Android应用开发入门(六十四)使用Camera拍摄照片示例

时间:2013-11-29 13:08 点击:1942次 字体:[ ]




前言

  在开发Android应用的时候,如果需要调用摄像头获取拍摄的照片,除了通过Intent调用系统现有相机应用拍摄照片之外,还可以通过直接调用Camera硬件去去获取摄像头拍摄的照片。本文将讲解如何在Android应用中通过Camera拍摄照片,这个对开发相机类应用尤为重要,同样最后也将以一个简单的Demo演示。

  本文的主要内容:

  1. Camera
  2. 验证设备是否配备摄像头硬件
  3. Camera捕获画面的预览
  4. 使用Camera拍照
  5. 使用Camera拍照的Demo
  6. Camera的回调监听
  7. Camera的参数设置

Camera

  Camera是Android摄像头硬件的相机类,位于硬件包"android.hardware.Camera"下。它主要用于摄像头捕获图片、启动/停止预览图片、拍照、获取视频帧等,它是设备本地的服务,负责管理设备上的摄像头硬件。

  Camera既然用于管理设备上的摄像头硬件,那么它也为开发人员提供了相应的方法,并且这些方法大部分都是native的,用C++在底层实现,下面简单介绍一下Camera的一些方法:

  • static Camera open():打开Camera,返回一个Camera实例。
  • static Camera open(int cameraId):根据cameraId打开一个Camera,返回一个Camera实例。
  • final void release():释放掉Camera的资源。
  • static int getNumberOfCameras():获取当前设备支持的Camera硬件个数。
  • Camera.Parameters getParameters():获取Camera的各项参数设置类。
  • void setParameters(Camera.Parameters params):通过params把Camera的各项参数写入到Camera中。
  • final void setDisplayOrientation(int degrees):摄像预览的旋转度。
  • final void setPreviewDisplay(SurfaceHolder holder):设置Camera预览的SurfaceHolder。
  • final void starPreview():开始Camera的预览。
  • final void stopPreview():停止Camera的预览
  • final void autoFocus(Camera.AutoFocusCallback cb):自动对焦。
  • final takePicture(Camera.ShutterCallback shutter,Camera.PictureCallback raw,Camera.PictureCallback jpeg):拍照。
  • final void lock():锁定Camera硬件,使其他应用无法访问。
  • final void unlock():解锁Camera硬件,使其他应用可以访问。

  上面已经介绍了Camera的常用方法,下面根据这些方法详细讲解Android下使用Camera开发拍照应用最基本的过程:

  1. 使用open()方法获取一个Camera对象,鉴于Android设备可能配置了多个摄像头,open()方法可以通过摄像头Id开启指定的摄像头。
  2. 为Camera对象设置预览类,它是一个SurfaceHolder对象,通过setPreviewDisplay(SurfaceHolder)方法设置。
  3. 调用startPreview()方法开始Camera对象的预览。
  4. 调用takePicture()方法进行拍照,其中可以通过Camera.PictureCallback()回调获得拍摄的Image数据。
  5. 当拍摄完成后,需要调用stopPreview()方法停止预览,并使用release()释放Camera占用的资源。

  以上介绍的步骤都是最基本的过程,是必不可少的。Camera没有提供公开的构造函数,只能通过open()方法获取,并且必须设置一个预览类SurfaceHolder,如果不设置的话,将无法使用Camera。在使用完成Camera之后,必须使用release()释放Camera资源。



本文地址 : http://www.fengfly.com/plus/view-214105-1.html
标签: Android Camera
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: