我有一个带有半透明背景的对话框片段。我想以圆形或方形的形式在此对话框片段上放置相机预览。
设置比例类型为 时PreviewView.ScaleType.FIT_CENTER,预览如下:
而如果我将比例类型设置为PreviewView.ScaleType.FILL_CENTER,则预览如下:
以下代码是我用于相机预览可组合项的代码:
@Composable
private fun CameraPreview(
modifier: Modifier = Modifier,
scaleType: PreviewView.ScaleType = PreviewView.ScaleType.FILL_CENTER,
onUseCase: (UseCase) -> Unit
) {
AndroidView(
modifier = modifier,
factory = { context ->
val previewView = PreviewView(context).apply {
this.scaleType = scaleType
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
}
onUseCase(
Preview.Builder()
.build()
.also {
it.setSurfaceProvider(previewView.surfaceProvider)
}
)
previewView
}
)
}
Run Code Online (Sandbox Code Playgroud)
我尝试为布局参数设置整数值,但这似乎没有帮助。我怎样才能设置相机预览,使其适合边界,并且不会超出边界或在边界周围留下黑色边框?
这是供参考的图像,它显示了我想要实现的目标: