Я использую CustomPaint для создания пользовательской формы и хочу применить цветовой градиент, но с жесткими цветовыми точками. Без цветовых переходов.
PS: я не могу использовать разные краски вместо градиента из-за нестандартной формы.
Я проверил документацию и ничего не нашел. Это невозможно? Или есть другие обходные пути? Спасибо!
Вы можете разделить свою пользовательскую фигуру на более мелкие фигуры и присвоить каждой из них свой правильный цвет. Это был бы один из способов сделать это.
У меня есть другая идея. Вы можете сделать это так: придайте всему холсту пользовательской краски цвет, цвет фона вашего приложения. Дайте вашей пользовательской форме Colors.transparent в качестве цвета. Затем вы делаете столько контейнеров с цветами, которые хотите иметь, и ставите их друг под другом, чтобы общий размер соответствовал размеру вашей пользовательской краски. Вы накладываете пользовательскую краску на эти контейнеры с помощью Stack Widget, и ваша пользовательская форма примет цвета этих контейнеров, потому что ее цвет прозрачен. В то время как окружение вашей пользовательской формы будет иметь цвет фона вашего приложения, потому что вся пользовательская краска окрашена таким образом.
Ух ты. Это должно точно решить мою проблему. Отличное нестандартное мышление. Я проверю это и посмотрю.
Хорошо, я сам разобрался, я использую Gradient.linear в качестве шейдера для пользовательской раскраски. Я заметил, что он смешивает цвета только тогда, когда есть большой разрыв в стопах. Поэтому я наношу свои цвета и стопы вот так.
Цвета | Останавливаться
Зеленый 0,2
Зеленый 0,201
Синий 0,5
Синий 0,501
Желтый 1
Теперь цветные стопы жесткие.
Это совершенно верное замечание, но в моем случае форму трудно разбить на части.