Jetpack Compose 圆形边框未按预期应用

220*_*284 2 kotlin android-jetpack-compose

鉴于下面的可组合项,我期望有一个深灰色圆圈,其(白色)圆形边框为 2dp。

Box(
    modifier = Modifier
        .size(100.dp)
        .border(2.dp, Color.White, CircleShape)
        .clip(CircleShape)
        .background(Color.DarkGray)
)
Run Code Online (Sandbox Code Playgroud)

然而,这实际上会导致以下结果:

带有意外边框的盒子

这是预期的行为吗?如果是这样,有没有办法让边框应用到最外边缘?我可以通过在里面设置内容来获得所需的效果Box,但我想知道是否有其他方法。

Phi*_*hov 5

这是预期的行为 - 裁剪完成后,一些边缘像素变得半透明,使形状看起来更自然。

因此,当两个相同的裁剪形状重叠时,这些半透明像素会混合在一起,您就会看到这种伪影。

一个可能的解决方案是给内圆一点填充:

Box(
    modifier = Modifier
        .size(100.dp)
        .border(2.dp, Color.White, CircleShape)
        .padding(1.dp)
        .clip(CircleShape)
        .background(Color.DarkGray)
)
Run Code Online (Sandbox Code Playgroud)