一 通过camerax 实现基本的拍照、屏幕曝光度 闪光灯 放大 聚焦等功能
三 camerax 拍照的数据是字节流 如何控制图片的大小与方向
要用camerax实现自定义相机,那必须要去官网学习啊。 developer.android.google.cn/jetpack/and…
当然我没有用最新版本,一般我用得版本都是久一些的版本。哈哈总感觉用最新版本的都是当小白鼠。 不过你们也可以用最新版本体验。
1、增加依赖
implementation "androidx.camera:camera-core:$camerax_version"
// CameraX Camera2 extensions
implementation "androidx.camera:camera-camera2:$camerax_version"
// CameraX Lifecycle library
implementation "androidx.camera:camera-lifecycle:$camerax_version"
//previewView
implementation("androidx.camera:camera-view:1.0.0-alpha27")
2、写个fragment 编写自己的ui 核心代码都在BaseCameraxFragmentV2中
这里我也不全贴代码了,用自己的理解无非就是 相机预览->点击拍照按钮产生图片流 这2步
相机预览核心代码
cameraProvider.bindToLifecycle(
viewLifecycleOwner,
cameraSelector,
preview,
imageCapture
)
ProcessCameraProvider是相机提供者并且与我们的ui进行了生命周期绑定。
CameraSelector 是相机选择器 可以选择前置还是后置摄像头
PreviewView 显示CameraX预览用例的摄影机的自定义视图,它在内部使用TextureView或SurfaceView来显示相机提要,并对其应用所需的变换以正确显示预览,这包括更正其纵横比、缩放和旋转。
ImageCapture 用来控制图片拍照后宽高 图片的生成角度 闪光灯模式等。
3、到这里大家可以先把我的代码理一理 或者项目跑起来点击拍照看看 去文件管理中 /storage/emulated/0/Android/data/cn.zdq.mvvm_demo/files 目录下看看生成的图片