我想在每个 GPS 点处创建标记,其颜色范围从白色到红色,对应于 GPS 数据指示该点速度的慢或快程度。然而,由于
Color.fromRGBO()
const
参数,我很难获得改变颜色的速度。我怎样才能绕过 Color 类或找到比使用 Marker 对象更好的方法来绘制这样的渐变?
您确实可以使用https://api.flutter.dev/flutter/dart-ui/Color/Color.fromARGB.html
const Color.fromARGB(
int a,
int r,
int g,
int b
)
与
a=0
、g=0
和 b=0
并使用您的刻度(您需要知道最大值,我们称之为 r_max
,以标准化范围)。因此,每当您有强度值时,我们称其为 r_intensity
,您只需计算
const r = 255 * (r_intensity / r_max)
计算颜色强度。
r_intensity / r_max
的结果将始终在 [0, 1] 乘以 255 的范围内,以符合
r 是红色,从 0 到 255。 来自文档。
关于常量问题:听起来您想要(大量?)为颜色设置动画。查看 https://api.flutter.dev/flutter/animation/AnimationController-class.html 并将红色值设置为您的 Widget 状态。
除此之外,它应该可以工作
var r = ...
代替 const r = ...
并将其传递给 Color查看您的图像,问题可能源于您的 int 为空。请确保您的颜色小部件没有包装到任何带有
const
前缀的小部件中!这里可能就是这种情况,并产生您所看到的结果。在我这边测试了一下以确认。