Android Compose – применить режим PorterDuff к изображению с перекрывающейся фигурой того же цвета и альфа-каналаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android Compose – применить режим PorterDuff к изображению с перекрывающейся фигурой того же цвета и альфа-канала

Сообщение Anonymous »


Я хотел бы добиться такого дизайна (стрелка и овал должны иметь одинаковый цвет)


Изображение


Я добился этого, сложив две коробки

@Composable частное развлечение Pin() { Столбец { Коробка( модификатор = Модификатор .wrapContentSize() .фон( цвет = цвет булавки, форма = RoundedCornerShape (размер = 100.dp) ) ) { Ряд( модификатор = Модификатор .padding(6.dp) .align(Выравнивание.Центр) ) { Икона( модификатор = Modifier.align(Alignment.CenterVertically), художник = icon.painter, ) Текст( текст = "2", модификатор = modifier.padding(начало = 2.dp, конец = 2.dp) ) } } Коробка( модификатор = Модификатор .align(Alignment.CenterHorizontally) .размер( ширина = 12.дп, высота = 8.дп ) .offset(y = - 4.dp) .clip(форма = TriangleShape()) .background(color = pinColor) ) } } Результат такой. Поскольку фон имеет альфу, перекрывающаяся часть смешивает цвета.


Изображение


Мне удалось это исправить, добавив graphicsLayer(alpha = 0.99f) к Trianagle из этого решения. Проблема в том, что теперь видна линия, разделяющая два поля.

Коробка( модификатор = Модификатор .graphicsLayer(альфа = 0,99f) .align(Alignment.CenterHorizontally) .размер( ширина = 12.дп, высота = 8.дп ) .offset(y = - 4.dp) .clip(форма = TriangleShape()) .background(color = pinColor) )
Изображение

Изображение


Есть ли способ добиться того же результата, не видя границы между двумя прямоугольниками? Может ли использование Canvas стать решением?
Ответить

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

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

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

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

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