Составьте: выцветать горизонтальный градиент (объединить горизонтальный и вертикальный градиент)Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Составьте: выцветать горизонтальный градиент (объединить горизонтальный и вертикальный градиент)

Сообщение Anonymous »

У меня есть простой горизонтальный градиент -коробку, которая переходит от цвета красного цвета к цвету синий

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,
)
}
}
)
Это привело к исчезновению, но он исчезает до черного цвета, который был удивительным для меня из -за двух цветов, используемых в Verticalcradient , не оказывает какого -либо эффекта, когда режим смешивания - DSTIN . Я теоретически понимаю, что это маска, но на практике я не могу понять, почему она исчезла для черного. Использование srcover дает следующий результат:

SrcOver< /code> похоже на то, что мне нужно, но у него есть две проблемы: < /p>

Теперь цвета в вертикальном градиенте имеют эффект, но я не могу использовать один цвет (например, цвет. Но мне действительно нужно было поведение «маски». alt = "Введите описание изображения здесь" src = "https://i.sstatic.net/ityqxflj.png"/>
Теперь это именно то, что мне нужно вертикально, но, очевидно, я действительно взял на себя горизонтальный градиент. Чего я хотел бы достичь, это комбинация первой картины и последней картинки (конечно, без зеленого цвета).
Любая помощь ценится.

Подробнее здесь: https://stackoverflow.com/questions/797 ... l-gradient
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»