如何将camera 图像显示在picture上

 我来答
桂桂时刻
2014-12-23 · 关于互联网!关于跨境电商!
桂桂时刻
采纳数:923 获赞数:4732

向TA提问 私信TA
展开全部
在开发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占用的资源。
  如果直接使用taskPicture()进行拍照的话,Camera是不会进行自动对焦的,这里需要使用Camera.autoFocus()方法进行对焦,它传递一个Camera.AutoFocusCallback参数,用于自动对焦完成后回调,一般会在它对焦完成在进行taskPicture()拍照。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式