Android Jetpack 组合渐变

新手上路,请多包涵

是否可以使用 Jetpack Compose 在可绘制图像上绘制渐变?

 fun HeroCover() {
    Column {
        val image = +imageResource(R.drawable.edge_of_tomorrow_poster)
        Container(modifier = Height(440.dp) wraps Expanded) {
            Clip(shape = RoundedCornerShape(8.dp)) {
                DrawImage(image = image)
            }
        }
    }
}

我想在图像顶部绘制一个半透明渐变。

原文由 AouledIssa 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 690
2 个回答

试试这个:

 Box(
    modifier = Modifier
        .background(
            brush = Brush.verticalGradient(
                colors = listOf(
                    MaterialTheme.colors.primary,
                    MaterialTheme.colors.primaryVariant
                )
            )
        )
) {
    Content()
}

原文由 Luis Fer Garcia 发布,翻译遵循 CC BY-SA 4.0 许可协议

下面是一个 LinearGradientShader 如何在绘制对象的 Compose 中使用的示例。我想你可以使用类似的东西来得到你想要的

https://gist.github.com/lelandrichardson/35b2743e1acd5d672f963f92aca57d4a#file-shimmer-kt-L83

更新:这是我在 kotlin lang slack 频道中偶然发现的另一种方法 -

 Box(
    modifier = Modifier
        .preferredSize(500.dp, 500.dp)
        .drawBackground(
            HorizontalGradient(
                0.0f to Color.Red,
                0.5f to Color.Green,
                1.0f to Color.Blue,
                startX = Px.Zero,
                endX = 500.dp.toPx()
            )
        )
)

来源: https ://kotlinlang.slack.com/archives/CJLTWPH7S/p1590430288092800

原文由 Vinay Gaba 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题