Как нарисовать вырез в PreviewView Android Compose?
Я создаю QR-сканер, в котором предварительный просмотр размыт, за исключением центральной квадратной части, я смог размыть PreviewView, но не смог придумать способ размыть центральную часть выреза.
AndroidView(
modifier = Modifier.fillMaxSize(),
factory = { context ->
val previewView = PreviewView(context).apply {
setRenderEffect( RenderEffect.createBlurEffect(
26f, 26f,Shader.TileMode.CLAMP))
implementationMode = PreviewView.ImplementationMode.COMPATIBLE
}
val preview = Preview.Builder().build()
val selector = CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_BACK).build()
preview.setSurfaceProvider(previewView.surfaceProvider)
val imageAnalysis = ImageAnalysis.Builder().setTargetResolution(
Size(
previewView.width, previewView.height
)
).setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST).build()
imageAnalysis.setAnalyzer(
ContextCompat.getMainExecutor(context),
QrCodeAnalyzer { result ->
onScan(result)
})
try {
camera = cameraProviderFuture.get().bindToLifecycle(
lifecycleOwner, selector, preview, imageAnalysis, imageCapture
)
} catch (e: Exception) {
e.printStackTrace()
}
previewView
},
)
if (overlay != null) {
overlay()
}