randomColorInRange static method
基于指定基色生成相近色随机颜色
baseColor:基础颜色。
variation:变化范围0.0, 1.0,数值越大颜色可变化越大,默认0.2。
示例:
Color newColor = CommonUtil.randomColorInRange(Colors.blue, variation: 0.1);
print(newColor);
返回值: 返回一个颜色值接近基色的随机Color对象。
Implementation
static Color randomColorInRange(Color baseColor, {double variation = 0.2}) {
assert(variation >= 0.0 && variation <= 1.0,
'variation must be between 0.0 and 1.0');
final random = Random.secure();
final range = (255 * variation).toInt();
// 使用 Color.withValues() 方法来创建新颜色
return baseColor.withValues(
red: (baseColor.r + (random.nextInt(range) - (range ~/ 2)) / 255)
.clamp(0.0, 1.0),
green: (baseColor.g + (random.nextInt(range) - (range ~/ 2)) / 255)
.clamp(0.0, 1.0),
blue: (baseColor.b + (random.nextInt(range) - (range ~/ 2)) / 255)
.clamp(0.0, 1.0),
);
}