如何判断camera图像输出到屏幕

如题所述

在开发Android应用的时候,如果需要调用摄像头获取拍摄的照片,除了通过Intent调用系统现有相机应用拍摄照片之外,还可以通过直接调用Camera硬件去去获取摄像头拍摄的照片。本篇博客将讲解如何在Android应用中通过Camera拍摄照片,这个对开发相机类应用尤为重要,同样最后也将以一个简单的Demo演示。
final void setErrorCallback(Camera.ErrorCallback cb):Camera发送错误的时候回调,可以在其中进行错误的后续处理。
final void setPreviedCallback(Camera.PreviewCallback cb):Camera预览界面发生变化的时候回调,可以在其中获取到Camera捕获到的帧图像。
FEATURE_CAMERA:设备是否有摄像头。
FEATURE_CAMERA_ANY:设备至少有一个摄像头。
FEATURE_CAMERA_AUTOFOCUS:设备支持的摄像头是否支持自动对焦
FEATURE_CAMERA_FLASH:设备是否配备闪光灯。
FEATURE_CAMERA_FRONT:设备是否有一个前置摄像头。
Camera
Camera捕获画面的预览
Camera的预览,需要放到一个SurfaceView中,出于安全的考虑,在设计Android的时候就规定,如果需要调用Camera,必须为其制定显示在屏幕上的SurfaceView预览,否则将无法使用Camera。关于SurfaceView和SurfaceHolder的内容,在之前的博客中已经详细讲解,这里不再累述,不清楚的朋友可以看看之前的博客:Android--SurfaceView。
public final void taskPicture(Camera.ShuffterCallback shutter,Camera.PictureCallback raw,Camera.PictureCallback postview,Camera.PictureCallback jpeg)
使用open()方法获取一个Camera对象,鉴于Android设备可能配置了多个摄像头,open()方法可以通过摄像头Id开启指定的摄像头。
为Camera对象设置预览类,它是一个SurfaceHolder对象,通过setPreviewDisplay(SurfaceHolder)方法设置。
调用startPreview()方法开始Camera对象的预览。
调用takePicture()方法进行拍照,其中可以通过Camera.PictureCallback()回调获得拍摄的Image数据。
当拍摄完成后,需要调用stopPreview()方法停止预览,并使用release()释放Camera占用的资源。
温馨提示:答案为网友推荐,仅供参考
相似回答