android实现手机拍照以及图片预览功能_Android Camera2 Api 实现预览和拍照

camera2的结构如下,主要是通过相机管理器(CameraManager)获得相机设备(CameraDevice),然后再开启一个控制相机的会话,最后发送 拍照、预览、录像等请求。

5d626a60a40a9b0c0a43bc417b63b12e.png

0 准备

1 新建工程,在一个Activity上

设置一个TextureView 用于 预览图片;

设置一个ImageView 用于 显示拍照结果;

设置一个 Button 用于触发拍照功能;

2 设置AndroidManifest.xml文件配置相机权限

<uses-permission 

I 实现预览功能

1.先创建好一个预览的容器textureView

textureView
  1. 监听这个容器的状态,如果容器准备好了,就开启相机:
// 先准备一个监听器
  1. 启动相机时,要创建一系列的回调函数,所以应该从后向前写代码:
private 

4 申请相机权限

private 

II 实现拍照功能

这段代码都是在 Activity的onCreate里面写的。

  1. 准备ImageReader用于监听并接收相机拍摄的图片
//B1. 准备工作:初始化ImageReader
  1. 设置ImageReader的监听函数
//B2. 准备工作:设置ImageReader收到图片后的回调函数
  1. 保存ImageReader的Surface
//B3 配置:获取ImageReader的Surface
  1. 设置相机的点击事件
//B4. 相机点击事件
  1. 最后要记得在之前配置的session会话里面绑定,当前这个输出对象imageReaderSurface:
private 

这段功能的整体代码为:

@Override
    

III 相机的声明周期管理

1. 当activity不处于交互状态时释放相机

@Override
    

2 当活动再次可以交互时开启相机

@Override
    

IV 预览和功能的完整代码为:

文件名 Camera2ApiActivity.java

package 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值