由于图像名称中存在空格,无法加载资源图像

2024-02-14

嘿,我的资产文件夹中有很多图像,我使用以下代码来获取图像列表

...

List<String> imagesList;

 Future _initImages() async {
    final manifestContent =
        await DefaultAssetBundle.of(context).loadString('AssetManifest.json');

    final Map<String, dynamic> manifestMap = json.decode(manifestContent);


    final imagePaths = manifestMap.keys
        .where((String key) => key.contains('images/')) // mention folder where all images exists
        .toList();

    print('imagePath ${imagePaths.length}');

    setState(() {
      imagesList = imagePaths;
    });
  }

  void initState() {
    // TODO: implement initState
    super.initState();
    _initImages();
  }

...

所以问题是我的图像名称包含空格,在打印我的 imagePaths 时,我得到类似这样的路径

' my%20image%20.jpg ' 

这意味着我认为它无法计算空白,当我将此路径提供给 Image 时,它​​会给出无法加载资产错误。有什么解决办法吗?

其中一张图像的路径:

assets/images/my image.jpg

这里的问题是空间。如果路径是:

“资产/图像/我的图像.jpg”

由于空格,您得到的路径为

“资产/图像/my%20image.jpg”

在 flutter 中将 Image.asset 的路径指定为

Image.asset("资产/图像/我的图像.jpg"),

将渲染图像。

但是 Image.asset("assets/images/my%20image.jpg"),会抛出错误。

因此,在将所有路径附加到列表之前,请确保删除所有 %20,然后将路径附加到列表。

为此,您可以使用https://api.dart.dev/stable/2.8.4/dart-core/String/replaceAll.html https://api.dart.dev/stable/2.8.4/dart-core/String/replaceAll.html

Example:

String path = "assets/images/my%20myimage%20spacex%20launchAmerica.png";
String newpath = path.replaceAll("%20", " ");
print("NewValidPath is : $newpath");

Output:

新的有效路径是:assets/images/my image spacex launch America.png

现在,这是一条有效的路径。因此这将渲染图像。

编辑:根据您的情况,您可以执行以下操作:

var pathList = manifestMap.keys.toList();
 for(int i=0;i<pathList.length;i++){
      pathList[i]=pathList[i].replaceAll("%20", " ");
 }
 setState((){
    imagesList=pathList;
 });

我希望这有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

由于图像名称中存在空格,无法加载资源图像 的相关文章

随机推荐

  • ^a-zA-Z0-9 不包括空格?

    我试图找到段落中不是 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 且不是空格 gi 的所有内容 a zA Z0 9 gi 上面的方法不行 您还可以尝试 a z
  • 单元测试中什么是正向测试和负向测试

    我对 TDD 还很陌生 我看到一些文档提到了阳性测试 阴性测试 边界测试等 有人能告诉我阳性测试和阴性测试之间的区别吗 有没有关于不同类型测试的参考资料 我不是在找书 阳性检测 通过提供有效的测试系统 数据 阴性检测 通过提供无效的测试系统
  • 在容器内运行 Chromium:libGl 错误

    我正在尝试在 docker 容器内运行 Chromium 这是我得到的输出 Created new window in existing browser session libGL error failed to open drm devi
  • 如何处理 Windows Phone 7 上的后退按钮

    在 Windows Phone 7 模拟器上 当按下硬件后退按钮时 默认行为是关闭当前应用程序 我想覆盖此默认行为 以便它导航到我的应用程序中的上一页 经过一些研究 似乎应该可以通过重写 OnBackKeyPress 方法来做到这一点 如下
  • 要 Segue 还是 didSelectRowAtIndexPath?

    下面是我当前正在运行的代码 我有一个带有导航控制器 表格视图控制器和视图控制器的故事板设置 我正在尝试将名称从我为表设置的 NSDictionary 传递到详细视图控制器 我应该使用prepareforsegue还是didselectrow
  • Elasticsearch 对相同文档给出不同的分数

    我有一些具有相同内容的文档 但是当我尝试查询这些文档时 尽管查询的字段包含相同的文本 但我得到了不同的分数 我已经解释了分数 但我无法分析和找到不同分数的原因 我的查询是 curl localhost 9200 acqindex searc
  • 如何在 Node.js 项目中自动执行编译 Twitter Bootstrap 等前端框架的任务?

    如何在 Node js 项目中自动执行编译 Twitter Bootstrap 的任务 我正在编辑 LESS 文件 这些文件编译成 Node js 项目的 Bootstrap 自定义版本 因此我不能只使用在线定制器或预编译的 JavaScr
  • 带有通用列表的 Java 参考作业

    我觉得问这个问题很愚蠢 但我就是 线路List
  • Python WordCloud 遇到 AttributeError: 'list' 对象没有属性 'items'

    当我使用WordCloud函数 fit words 时 我遇到了AttributeError list object has no attribute items 当我使用 generate from frequencies 时它也不起作用
  • Rspec:运行测试时如何抑制警告和通知?

    我之前使用 Mysql 数据库 决定切换到 Postgresql 现在 当我使用 rspec 运行测试时 我收到很多警告和通知 WARNING there is already a transaction in progress NOTIC
  • 在 Windows 中查找相对于另一个的路径

    这个问题应该是显而易见的 但我还没有能够解决它 我需要一个函数 它接受两个参数 每个参数一个文件路径 相对或绝对 并返回一个文件路径 该文件路径是相对于第二个路径 开始 解析的第一个路径 目标 解析的路径可能是相对于当前目录的 也可能是绝对
  • 使用 JavaScript 进行动态 Adsense 插入

    我不敢相信这有多难找到 但即使在谷歌开发者文档中我也找不到它 我需要能够动态地 only使用 JavaScript 插入 adsense 我也在 StackOverflow 上查看过 其他一些人也问过这个问题 但没有回复 希望这将是一个更好
  • Xml命名空间声明:自动替换包名

    我有一个带有多个构建目标的 android 项目 使用 ant 出于测试目的 这些构建目标都有不同的包名称 因此我的包名称是 com mycompany myapp 用于发布构建 和 com mycompany myapp test 用于测
  • 保留文件夹结构 Cocoa Pods

    我通过本教程创建了一个简单且私有的 Pod http pablin org 2013 05 18 cocoapods for internal libraries http pablin org 2013 05 18 cocoapods f
  • Docker运行找不到可执行文件“uwsgi”

    我正在尝试使用 Docker 部署 falcon 应用程序 这是我的 Dockerfile FROM python 2 onbuild Set the working directory to app WORKDIR app Copy th
  • 如何在终端中显示 git 用户 (oh-my-zsh)

    我很喜欢 oh my zsh 并享受其中飞船提示 https github com denysdovhan spaceship prompt 就像它显示我的 git 分支和状态一样 我怎样才能让它在旁边显示我当前的 git 用户 之所以问这
  • Django:将 Javascript 添加到自定义小部件的最佳方法

    我正在编写一个自定义小部件 它需要一些支持 javascript 代码 我需要在某个地方输出这些代码 选项有 将其转储到 html 代码之后 将其附加到表单的媒体 将其附加到全局onReady部分 我的直觉是避免以下事情
  • 如何使用 boost::filesystem 获取 inode?

    我想检测我是否已经看到了一个文件 并且想用一些独特的东西来识别它 在 Linux 下 有 inode 号和设备 ID 参见stat or fstat 我想在 Windows 下我会找到类似的东西 为了简单起见 boost filesyste
  • 有没有更好的方法来编写这个 Linq 查询

    Example from O in db Orders join C in db Customers on C Id equals O CustID Where O ord date filter OrderDate null filter
  • 由于图像名称中存在空格,无法加载资源图像

    嘿 我的资产文件夹中有很多图像 我使用以下代码来获取图像列表 List