Flutter - LinearGradient 的平滑过渡颜色

Sto*_*min 6 flutter

你好!

是否有用于创建在开始颜色和 ens 颜色之间具有平滑过渡的 LinearGradient 的解决方案?

new Container(
        decoration: new BoxDecoration(
          gradient: new LinearGradient(
              colors: [
                Colors.black,
                Colors.grey,
              ],
            stops: [0.0, 1.0],
            begin: FractionalOffset.topCenter,
            end: FractionalOffset.bottomCenter,
            tileMode: TileMode.repeated
          )
        ),
)
Run Code Online (Sandbox Code Playgroud)

显示颜色分辨率较差的渐变的图像

rmt*_*zie 7

似乎这可能来自 Android 模拟器。如果是这种情况,它会使用低质量的渲染器,以便它运行得足够快,尤其是在功能较弱的硬件上。在真实设备上进行测试,您可能会看到更好的结果。我相信您也可以提高模拟器上的图形,但不能 100% 确定这是否会改善这一点。见这里

这就是 Nexus 4 与模拟器上的渐变效果。

模拟器与设备


小智 6

在您的主要功能中Paint.enableDithering = true;,如下所示:

void main() {
  Paint.enableDithering = true;
  runApp(DesignChallenge05());
}
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用。确保重新启动而不是热重载。 (3认同)

And*_*gin 1

当您在长距离(数百像素)的相似颜色之间进行转换时,屏幕可能无法平滑地渲染它。

一种可能的解决方案是在 Photoshop 中创建带有渐变的背景图像。对图像感到满意后,将其剪切为 1 像素宽度,并将其用作背景图像,垂直重复。