gpt4 book ai didi

image - 如何在 flutter 中使用暗模式和不同分辨率的 Assets 图像?

转载 作者:行者123 更新时间:2023-12-04 13:00:06 24 4
gpt4 key购买 nike

我在我的 flutter 项目中使用了不同分辨率的图像 here .现在我想为暗模式主题添加自定义图像。
我在 pubspec.yaml 中的 Assets 声明如下所示:

flutter:
uses-material-design: true
assets:
- assets/images/img_menu.png
- ...

我的 Assets 结构:
  .../pubspec.yaml
.../assets/images/img_menu.png
.../assets/images/0.75x/img_menu.png
.../assets/images/1.5x/img_menu.png
.../assets/images/2.0x/img_menu.png
.../assets/images/3.0x/img_menu.png
.../assets/images/4.0x/img_menu.png

我以这种方式在项目中加载图像:
Image.asset('assets/images/img_menu.png')

我知道对于简单的单色图像,我可以像这样改变它的颜色:
Image.asset('assets/images/img_menu.png', 
color: Theme.of(context).brightness == Brightness.light
? Colors.black
: Colors.white,)

但是我的大多数图像都比较复杂,所以我必须为它们加载自定义 Assets 。

正如所描述的那样 here添加暗模式 Assets 后,我可以不做任何更改就离开 pubspec。
我为暗模式尝试了不同的 Assets 结构,但没有一个有效。

1:
  .../pubspec.yaml
.../assets/images/img_menu.png
.../assets/images/dark/img_menu.png
.../assets/images/0.75x/img_menu.png
.../assets/images/0.75x/dark/img_menu.png
.../assets/images/1.5x/img_menu.png
.../assets/images/1.5x/dark/img_menu.png
.../assets/images/2.0x/img_menu.png
.../assets/images/2.0x/dark/img_menu.png
.../assets/images/3.0x/img_menu.png
.../assets/images/3.0x/dark/img_menu.png
.../assets/images/4.0x/img_menu.png
.../assets/images/4.0x/dark/img_menu.png

2:
  .../pubspec.yaml
.../assets/images/img_menu.png
.../assets/images/0.75x/img_menu.png
.../assets/images/1.5x/img_menu.png
.../assets/images/2.0x/img_menu.png
.../assets/images/3.0x/img_menu.png
.../assets/images/4.0x/img_menu.png
.../assets/images/dark/img_menu.png
.../assets/images/dark/0.75x/img_menu.png
.../assets/images/dark/1.5x/img_menu.png
.../assets/images/dark/2.0x/img_menu.png
.../assets/images/dark/3.0x/img_menu.png
.../assets/images/dark/4.0x/img_menu.png

3:
  .../pubspec.yaml
.../assets/images/img_menu.png
.../assets/images/0.75x/img_menu.png
.../assets/images/1.5x/img_menu.png
.../assets/images/2.0x/img_menu.png
.../assets/images/3.0x/img_menu.png
.../assets/images/4.0x/img_menu.png
.../assets/dark/images/img_menu.png
.../assets/dark/images/0.75x/img_menu.png
.../assets/dark/images/1.5x/img_menu.png
.../assets/dark/images/2.0x/img_menu.png
.../assets/dark/images/3.0x/img_menu.png
.../assets/dark/images/4.0x/img_menu.png

单个图像的解决方案是像这样加载它:
Image.asset(Theme.of(context).brightness == Brightness.light 
? 'assets/images/img_menu.png'
: 'assets/images/dark/img_menu.png',)

但这对于整个项目来说并不是一个方便的解决方案。

更奇怪的是,在 2 变体应用程序中加载深色图像:浅色和深色主题(在 iPhone 和 Android 上测试)。

所以问题是:暗模式和分辨率感知图像 Assets 的文件结构应该是什么样的?

最佳答案

到目前为止,目前唯一支持的变体是缩放(设备像素比),而不是暗模式。

见:https://github.com/flutter/flutter/issues/44482

关于image - 如何在 flutter 中使用暗模式和不同分辨率的 Assets 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59437084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com