Reputation: 55
When I use BlendMode.DstOut
, it's supposed to show transparent source shape but it's black.
Supposed result:
Real result:
@Composable
fun BlendMode() {
Box(modifier = Modifier.fillMaxSize().background(White100))
Canvas(modifier = Modifier.size(300.dp)) {
val radius = size.width / 3
drawCircle(
color = Color.Red,
radius = radius,
center = Offset(radius, radius)
)
drawRect(
color = Color.Blue,
topLeft = Offset(radius, radius),
size = Size(radius * 2, radius * 2),
blendMode = BlendMode.DstOut
)
}
}
Upvotes: 2
Views: 2847
Reputation: 88142
The blendMode
will not allow you to achieve the desired result. You can do this by using clipRect
:
clipRect(
top = radius,
left = radius,
right = radius * 3,
bottom = radius * 3,
clipOp = ClipOp.Difference
) {
drawCircle(
color = Color.Red,
radius = radius,
center = Offset(radius, radius)
)
}
Upvotes: 3