Peter
11/13/2023, 9:11 AMShape
. Source code in thread.Peter
11/13/2023, 9:12 AMcomposed
for now 🙂
@Preview
@Composable
private fun Preview() {
Surface(Modifier.background(Color.White)) {
Box(
Modifier
.padding(10.dp)
.size(100.dp)
.border(
color = Color.Black,
width = 1.dp,
shape = MaterialTheme.shapes.large,
)
.composed {
val shape = MaterialTheme.shapes.large
offset((-1.5).dp, (-1.5).dp)
.drawBehind {
val border = 3.dp.toPx()
drawOutline(
shape.createOutline(
Size(size.width + border, size.height + border),
layoutDirection,
this
),
color = Color.Red,
style = Stroke(width = border),
)
}
}
)
}
}
Peter
11/13/2023, 9:23 AM.composed {
val shape = MaterialTheme.shapes.large
offset((-1.5).dp, (-1.5).dp)
.drawBehind {
val border = 3.dp.toPx()
val halfBorder = border / 2
val size = Size(size.width, size.height)
val outerShape = RoundedCornerShape(
topStart = CornerSize(shape.topStart.toPx(size, density) + halfBorder),
topEnd = CornerSize(shape.topEnd.toPx(size, density) + halfBorder),
bottomEnd = CornerSize(shape.bottomEnd.toPx(size, density) + halfBorder),
bottomStart = CornerSize(shape.bottomStart.toPx(size, density) + halfBorder),
)
drawOutline(
outerShape.createOutline(
Size(size.width + border, size.height + border),
layoutDirection,
this
),
color = Color.Red,
style = Stroke(width = border),
)
}
}
Jeff Lockhart
11/13/2023, 2:49 PMxoangon
11/13/2023, 9:12 PM