如上两图,可看出区别,同等焦距下,全屏模式下图放大了,尽管原相机如此,我们也希望最终效果是不放大的,也就是像最上图4:3的大小,请问有什么方法可以修改吗,相机初始化如下,欢迎给出见解与建议,一定会采纳的
private fun startCamera() {
// 创建一个用于管理相机生命周期的实例
val cameraProviderFuture = ProcessCameraProvider.getInstance(this)
cameraProviderFuture.addListener({
// 相机提供者可用时执行以下代码
// 获取相机提供者
val cameraProvider: ProcessCameraProvider = cameraProviderFuture.get()
val aspectRatio = Rational(4,3) // 设置宽高比为 3:4
// 配置相机预览的显示
val preview = Preview.Builder()
.setTargetAspectRatio(AspectRatio.RATIO_4_3)
.build()
.also {
it.setSurfaceProvider(mDatabind.viewFinder.surfaceProvider)
}
//不做放大效果 Fit_center中心不变,边边裁剪
// Fill_center 尽量填满
// mDatabind.viewFinder.scaleType = PreviewView.ScaleType.FILL_CENTER
// 配置图像捕获用于拍照
imageCapture = ImageCapture.Builder()
.setTargetAspectRatio(AspectRatio.RATIO_4_3)
.build()
// 设置相机的配置
val cameraSelector = CameraSelector.DEFAULT_BACK_CAMERA
try {
// 解绑之前绑定的用例
cameraProvider.unbindAll()
// 绑定相机用例
cameraProvider.bindToLifecycle(
this, cameraSelector, preview, imageCapture
)
} catch (exc: Exception) {
// 处理相机启动失败的异常
}
}, ContextCompat.getMainExecutor(this))
}