【问题标题】:AppBar Image too darkAppBar 图像太暗
【发布时间】:2021-09-02 23:07:03
【问题描述】:

我想给AppBar加个logo,但是不管我写成leading还是title,总是比原来的要暗一些。 AppBar 的颜色正好是#338585,这也是我在body 的body 内时的.png 图片的背景色。

为什么图片看起来如此不同? 是否有一个 BackdropFilter 自动应用于 AppBar,或者它可能与我的文件有关?

这是重现问题的方法(createMaterialColor 从一种颜色生成样本,但 AppBar 是正确的,所以这可能不是问题):


class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: createMaterialColor(Color(0xFF338585)),
      ),
      home: Scaffold(
        appBar: AppBar(
          leading: Image.asset('assets/logo.png'),
        ),
        body: Image.asset('assets/logo.png'),
      ),
    );
  }

  MaterialColor createMaterialColor(Color color) {
    List strengths = <double>[.05];
    final swatch = <int, Color>{};
    final int r = color.red, g = color.green, b = color.blue;

    for (int i = 1; i < 10; i++) {
      strengths.add(0.1 * i);
    }
    strengths.forEach((strength) {
      final double ds = 0.5 - strength;
      swatch[(strength * 1000).round()] = Color.fromRGBO(
        r + ((ds < 0 ? r : (255 - r)) * ds).round(),
        g + ((ds < 0 ? g : (255 - g)) * ds).round(),
        b + ((ds < 0 ? b : (255 - b)) * ds).round(),
        1,
      );
    });
    return MaterialColor(color.value, swatch);
  }
}

【问题讨论】:

  • 你也可以添加代码吗?
  • 当然,我编辑了问题。

标签: flutter dart png


【解决方案1】:

原来徽标的颜色是半透明的,只有在白色背景上使用时才会按预期显示。实际颜色值不是#338585,而是#006666。

经验教训:当图像中可能存在透明度时,不要使用绘画来检查颜色值。

【讨论】:

    猜你喜欢
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 2021-01-01
    • 2018-11-26
    • 1970-01-01
    相关资源
    最近更新 更多