Color changeColorHue(Color color) => HSLColor.fromColor(color).withHue(newHueValue).toColor();
Color changeColorSaturation(Color color) => HSLColor.fromColor(color).withSaturation(newSaturationValue).toColor();
Color changeColorLightness(Color color) => HSLColor.fromColor(color).withLightness(newLightnessValue).toColor();
4条答案
按热度按时间vyu0f0g11#
您可以使用这些帮助器方法来更改它。
newHueValue
:具有0和360之间的任意双精度newSaturationValue
:具有0和1之间的任意双精度newLightnessValue
:带有0和1之间的任意双精度同样,您可以用途:
HSVColor
表示HSV(色调、饱和度、明度)。更多信息:https://api.flutter.dev/flutter/painting/HSLColor-class.html
w1jd8yoj2#
有几种方法可以做到这一点
1.大多数色板的颜色从100到900,增量为 * 一百 *,再加上颜色50。数字越小,颜色越浅。数字越大,颜色越深。重点色板(例如
redAccent
)的值只有100,
、200,
、400
和700
。示例
Color selection = Colors.green[400]; // Selects a mid-range green.
示例调色板x1c 0d1x
此外,还有一系列不透明度常见的黑色和白色可供选择,例如black 54是一种不透明度为54%的纯黑色。
其它着色方法是
computeLuminance()
→ double返回介于0(最暗)和1(最亮)之间的亮度值。toString() →
String返回此对象的字符串表示形式。withAlpha(int a)
→ Color返回与此颜色匹配的新颜色,并将Alpha通道替换为a(范围从0到255)。withBlue(int b) →
颜色返回与此颜色匹配的新颜色,其中蓝色通道替换为b(范围从0到255)。withGreen(int g)
→ Color返回与此颜色匹配的新颜色,绿色通道替换为g(范围从0到255)。withOpacity(double opacity) →
Color返回与此颜色匹配的新颜色,其中Alpha通道替换为给定的不透明度(范围从0. 0到1. 0)。withRed(int r)
→ Color返回与此颜色匹配的新颜色,红色通道替换为r(范围从0到255)。wko9yo5t3#
除了@Tomas Barans回答:
以下是一些相对辅助方法,用于修改饱和度、色调和亮度,而无需设置绝对值:
mzaanser4#
也可以使用扩展方法: