Android API 21新增了camera+2安卓版2这与之前的camera+2安卓蝂架构完全不同,使用起来也比较复杂但是功能变得很强大。
在讲解开启预览之前首先需要了解camera+2安卓版2的几个比较重要的类:
在布局文件中加入TextureView控件,然后实现其监听事件
实现StateCallback 接口当相机打开后会回调onOpened方法,在这个方法里面开启预览
首先创建一个ImageReader并监听它的事件
首先先做些准备工作,设置拍照参数如方向、尺寸等
設置拍照尺寸,可以跟预览尺寸一起设置然后ImageReader初始化使用此尺寸
然后当ImageReader有数据时,通过此线程保存图片
现在准备工作做好了还需要响應点击拍照事件,我们设置点击拍照按钮调用capture()方法capture()方法即实现拍照
重启预览的方法很简单了
代码地址(顺手给个Star啊):
我正在使用Google示例项目但无法在鈈拉伸情况下使预览工作:
我已经尝试在AutoFitTextureView类上物理地更改了方面分配,这使它成为全屏但会使它拉伸。有什么解决方法吗
Android API 21新增了camera+2安卓版2这与之前的camera+2安卓蝂架构完全不同,使用起来也比较复杂但是功能变得很强大。
在讲解开启预览之前首先需要了解camera+2安卓版2的几个比较重要的类:
下面梳理一下使用camera+2安卓版2进行预览和拍照的主要流程:
在布局文件中加入TextureView控件,然后实现其监听事件
实现StateCallback 接口,当相机打开后会回调onOpened方法在这个方法里面开启预览
camera+2安卓版2拍照是通过ImageReader来实现的首先先做些准备工莋,比如设置拍照参数如方向、尺寸等
创建一个ImageReader,并监听它的事件:
现在准备工作做好了还需要响应点击拍照事件,我们设置点击拍照按钮调用capture()方法capture()方法即实现拍照: