我想在喷气背包构图中画渐变线。我尝试了一些代码,但它并不像我预期的那样正确。
预期产出
实际产量
编码
@Preview(showBackground = true)
@Composable
fun DrawTimeLine() {
Column(Modifier.fillMaxSize()) {
repeat(2) { index ->
val (height, brush) = if (index == 0) {
75.dp to Brush.linearGradient(listOf(Color.Blue, Color.Red))
} else {
25.dp to Brush.linearGradient(listOf(Color.Red, Color.Red))
}
Column(
modifier = Modifier
.fillMaxWidth()
.height(height)
.drawBehind {
drawLine(
brush = brush,
start = Offset(x = center.x, y = 0F),
end = Offset(x = center.x, y = size.height),
strokeWidth = 2.dp.toPx(),
)
}
) {}
}
}
}
2条答案
按热度按时间tpgth1q71#
请试试这个。
hrirmatl2#
Brush.linearGradient
默认使用起始值和结束值创建Angular 为45度的渐变。它可以改变旋转Angular ,改变45度是很简单的,旋转其他Angular 需要延长刷我想,你可以检查出this answer的梯度Angular 旋转。您可以通过适当地设置开始和结束来将其更改90度,或者使用
Brush.verticalGradient
,这是更方便的方法。如果你用线性笔刷在任意点上画一条线,你会看到你画的是下面的矩形渐变段,因为渐变是根据开始和结束位置设置的。
AS J.K使用
Brush.verticalGradient
回答,它在组合物的高度之间均匀地分配颜色。如果使用色标,则可以定义哪种颜色应占哪个百分比