android通过android.hardware.Camera类来控制摄像头设备的,要使用只有通过android.hardware.Camera.open()来打开,这样就会创建一个新的Camera对象。

android提供了一些接口来给予回调,控制Camera的状态,

分别是:
1.android.hardware.Camera.ErrorCallback:摄像头出错的时候调用,这个接口具有一个void onError(int error,Camera camera)函数;其中,

前者表示数据类型,取值是Camera类中的常量CAMERA_ERROR_UNKNOWN或者是 CAMERA_ERROR_SERVICE_DIED;

前者是不明错误,后者是表示服务已经关闭,

在这种情况下需要释放当前的Camera对象,然后再初 始化一个。

2.android.hardware.camera.PreviewCallback:在图像预览时调用,这个接口有一个void onPreviewFrame(byte[] data,Camera camera);参数data为每帧图像的数据流。我们可以根据实际需要来实现这个接口。

3.android.hardware.Camera.ShutterCallback:在图像预览的时候调用,这个接口具有一个void onShutter();
可以在改函数中通知用户快门已经关闭,例如播放一个声音。

4.android.hardware.Camera.PictureCallback:当拍摄相片的时候调用,该接口具有一个void onPictureTaken(byte[] data,Camera camera)函数;参数和预览的一样。在android中主要有三个类实现了这个接口,分别是PostViewPictureCallback、 RawPictureCallback、JepgPictureCallback。我们可以根据需要定义自己需要的类。

5.android.hardware.Camera.AutoFocusCallback:当自动对焦时候调用,该接口具有一个void onAutoFocus(boolean success,Camera camera)函数;

6.还提供了放大缩小的监听器android.hardware.Camera.OnZoomChangeListener。

private final class ZoomListener implements android.hardware.Camera.OnZoomChangeListener {
public void onZoomChange(int value, boolean stopped, android.hardware.Camera camera) ;

当取得照片的数据流后可以通过BitmapFactory的decodeByteArray()函数来解析图片。

另外还可以通过Camera对象的getParameters()函数来得到一个android.hardware.Camera.Parameters 对象,Parameters提供了一些接口来设置Camera的属性:

1.setPictureFormat(int pixel_format):设置图片的格式,其取值为PixelFormat YCbCr_420_SP、PixelFormatRGB_565或者PixelFormatJPEG。

2.setPreviewFormat(int pixel_format):设置图片的预览格式,取值如上。

3.setPictureSize(int width,int height):设置图片的高度和宽度,单位为像素。

4.setPreviewSize(int width,int height):设置预览的高度和宽度,取值如上。

5.setPreviewFrameRate(int fps):设置图片预览的帧速。 在设置好Camera的参数后,可以通过函数void startPreview()开始预览图像、void stopPreview()结束预览,通过autoFocus(AutoFocusCallback cb)来自动对焦,最后可以通过takePicture(ShutterCallback shutter, PictureCallback raw, PictureCallback jpeg)函数来拍照。

该函数有三个参数,分别为快门回调接口、原生图像数据接口和压缩格式图片数据接口。

如果数据格式不存在的话数据流为空,如果不需要 实现这些接口则这些参数取值可以为null。







更多相关文章

  1. Android中的基础----在按钮上显示图像的方式
  2. 初学Android,图形图像之使用Path类(二十六)
  3. Android WebView 中 addJavascriptInterface 接口无效问题
  4. android Audio 应用接口
  5. android Shader类简介_渲染图像示例
  6. Android Opencv 410 集成 以及 jni环境配置 图像 处理个人总结
  7. Android 系统调试接口
  8. android 调用腾讯微博接口
  9. Android Chronometer控件实现计时器函数详解

随机推荐

  1. Android(安卓)P ActivityManagerService(
  2. android ListView内数据的动态添加与删除
  3. 六步骤开发和发布自己的Android(安卓)Stu
  4. Android(安卓)ImageView显示网络图片
  5. ffmpeg支持android硬件解码mediacodec
  6. Android中英文语言切换
  7. android 横竖屏等设置
  8. android 获取手机设备信息
  9. Android(安卓)源码阅读之MMS
  10. android Camera模块分析