我有一张图片,想在它上面画一个带透明圆的黑色矩形,使结果类似于此图:
我已经写好了以下代码:
但是似乎它只是在图像顶部绘制了一个黑色圆圈,而不是清除暗矩形...
如果您能根据此圆圈的坐标建议如何裁剪图像,那将非常方便。
![https://www.google.com/url?sa=i&url=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F36763696%2Fhow-to-create-a-transparent-circle-inside-rectangle-shape-in-xml-in-android&psig=AOvVaw18ZjvY-j8QyYzFw1xsmOdJ&ust=1630768957499000&source=images&cd=vfe&ved=0CAsQjRxqFwoTCPD1mveN4_ICFQAAAAAdAAAAABAE](https://istack.dev59.com/H5WJl.webp)
Box(modifier = Modifier
.clip(RectangleShape)
.fillMaxSize()
.background(Color.Black)
.pointerInput(Unit) {
detectTransformGestures { centroid, pan, zoom, rotation ->
scale *= zoom
}
}) {
Image(
modifier = Modifier
.align(Alignment.Center)
.graphicsLayer(
scaleX = maxOf(.2f, minOf(5f, scale)),
scaleY = maxOf(.2f, minOf(5f, scale))
),
bitmap = bitmap.asImageBitmap(),
contentDescription = null
)
Canvas(modifier = Modifier.fillMaxSize(), onDraw = {
drawRect(Color.Black.copy(alpha = 0.8f))
drawCircle(
Color.Transparent,
style = Fill,
blendMode = BlendMode.Clear
)
})
}
但是似乎它只是在图像顶部绘制了一个黑色圆圈,而不是清除暗矩形...
如果您能根据此圆圈的坐标建议如何裁剪图像,那将非常方便。