as Коробка: < /p>
Код: Выделить всё
Box(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()
.background(
brush = Brush.horizontalGradient(
colors = listOf(
Color.Red,
Color.Blue,
)
)
)
)
< /code>
Мне нужно сделать этот горизонтальный градиент, чтобы также исчезнуть вертикально до прозрачного цвета. Вроде как сочетание этого горизонтального градиента с линейным градиентом, который переходит от существующих цветов к прозрачному (исчезаю). < /P>
Я провел некоторые исследования и обнаружил, что я должен использовать DrawWithCache < /code> с режимом смеси dstin.Box(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()
.drawWithCache {
onDrawBehind {
drawRect(
brush = Brush.horizontalGradient(
colors = listOf(
Color.Red,
Color.Blue,
)
)
)
drawRect(
brush = Brush.verticalGradient(
colors = listOf(
Color.Green, // could be any color
Color.Transparent,
),
),
blendMode = BlendMode.DstIn,
)
}
}
)
SrcOver< /code> похоже на то, что мне нужно, но у него есть две проблемы: < /p>
Теперь цвета в вертикальном градиенте имеют эффект, но я не могу использовать один цвет (например, цвет. Но мне действительно нужно было поведение «маски». alt = "Введите описание изображения здесь" src = "https://i.sstatic.net/ityqxflj.png"/>
Теперь это именно то, что мне нужно вертикально, но, очевидно, я действительно взял на себя горизонтальный градиент. Чего я хотел бы достичь, это комбинация первой картины и последней картинки (конечно, без зеленого цвета).
Любая помощь ценится.
Подробнее здесь: https://stackoverflow.com/questions/797 ... l-gradient
Мобильная версия