如果路径或名称文件中存在空格,则无法加载图像 Flutter

Lor*_*rti 5 flutter

我在动态加载资产图像时遇到问题。

我有一个图像,我正在尝试加载:

new AssetImage(img_path)
Run Code Online (Sandbox Code Playgroud)

img_path 是:

/storage/emulated/0/WhatsApp/Media/WhatsApp Images/test.jpg

它返回:

(27161):抛出另一个异常:无法加载资产:/storage/emulated/0/WhatsApp/Media/WhatsApp Images/test.jpg

如果我尝试移动我的文件,例如

/storage/emulated/0/WhatsApp/Media/test.jpg

有用。

但如果我用空格更改文件名,例如:

/storage/emulated/0/WhatsApp/Media/test with space.jpg

所以我想这可能是路径中有空格的问题。

我该如何解决这个问题?

Gün*_*uer 10

我认为这就是你真正想要的

new FileImage(
    new File('/storage/emulated/0/WhatsApp/Media/WhatsApp Images/test.jpg')
)
Run Code Online (Sandbox Code Playgroud)

另见https://docs.flutter.io/flutter/painting/FileImage-class.html

  • 资产是嵌入在用于安装应用程序的 APK 中的资源。您需要在 `pubspec.yaml` 中注册这些资产,以便将它们添加到 APK 中。资产嵌入在已安装的应用程序中,因此不能直接作为设备存储上的文件使用。AssetBundle 允许您从资产中读取(AssetImage 使用它)。`ImageFile` 用于设备存储中作为普通文件可用的图像文件。https://flutter.io/assets-and-images/ (4认同)
  • 在这种情况下,`loadImageFromFile` 应该看起来像 `loadImageFromFile(String imgPath) { return File(imgPath); }` (2认同)