这很可能是因为PreviewView的宽高比与CameraX分析的宽高比不匹配所造成的。如果这是问题所在,可以在设置PreviewView时使用AspectRatioViewFinder代替TextureView。AspectRatioViewFinder是一种自定义的View,可以让您指定CameraX应该使用的宽高比,从而避免裁剪。
例如,如果您希望使用16:9宽高比,请使用以下代码:
val viewFinder = findViewById(R.id.view_finder)
val preview = Preview.Builder()
.setTargetAspectRatio(AspectRatio.RATIO_16_9) // 设置16:9宽高比
.build()
val camera = cameraProvider.bindToLifecycle(this, cameraSelector, preview)
preview.setSurfaceProvider(viewFinder.createSurfaceProvider(camera.cameraInfo))
这样,您就可以使用AspectRatioViewFinder确保CameraX分析的图像不会被裁剪了。