图像选择器“无法加载资产”

时间:2019-09-21 20:14:03

标签: flutter dart

我在我的 Flutter 项目中使用Image Picker package
我从图库中选择图片,然后在Image.asset小部件

中预览

这里的问题是,如果图像名称​​“ example_name.png” (不带空格)在屏幕上可见,但是如果图像名称​​“ example_name.png” (带有空格),图像就这样Screenshot不可见。

  

错误:Unable to load asset: /storage/emulated/0/Download/images (9).jpeg

File _image;


Image.asset(
  _image != null
      ? "${_image.path}"
      : getImage("icon.png"),
  fit: BoxFit.cover,
  width: 120,
  height: 120,
);

...

Future chooseFile() async {    
  await ImagePicker.pickImage(source: ImageSource.gallery).then((image) {    
    setState(() {    
      _image = image;    
    });    
  });    
}

3 个答案:

答案 0 :(得分:2)

您使用了错误的Image构造函数。使用Image.file代替Image.assetImage.asset加载打包在应用程序(assets的{​​{1}}部分)中的文件,而pubspec.yaml无权访问它们。

答案 1 :(得分:0)

使用Image.file是一个不错的选择,但是您希望通过使用它的有效方式来显示它 Image.file(_image).image这将帮助您将图像文件转换为图像提供程序

答案 2 :(得分:0)

image_picker(版本 0.6.7 + 22)中,我能够在这种情况下恢复图像

    if (photo == null) {
        return Image (
          image: AssetImage ('assets / no-image.png'),
          height: 300.0,
          fit: BoxFit.cover,
        );
      } else {
        return Image.file (
          Photo,
          height: 300.0,
          fit: BoxFit.cover,
        );
      }