这是我的代码;
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
){
Canvas(
modifier = Modifier
.fillMaxSize(0.5f)
.border(1.dp, Color.Red)
){
drawRect(
color =Color.Black,
size = size,
style = Stroke(
width = 100f
)
)
}
}
}
结果;
我希望厚度从红线的内侧或外侧增加,而不是两侧。我怎样才能做到这一点?
最佳答案
您必须考虑 Rect 的偏移量和宽度。
要在外面画画,你可以使用:
val width = 100f
drawRect(
topLeft = Offset(-width/2, -width/2),
color =Color.Black,
size = Size(size.width + width, size.height + width),
style = Stroke(
width = width
)
)
绘制内部:
val width = 100f
drawRect(
topLeft = Offset(+ width/2, + width/2),
color =Color.Black,
size = Size(size.width - width, size.height - width),
style = Stroke(
width = width
)
)
关于kotlin - 我如何在 Android Jetpack Compose 中的 Canvas 上绘制单侧加厚描边?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73414363/