【问题标题】:How to get property AssetName from Image.asset in Flutter?如何从 Flutter 中的 Image.asset 中获取属性 AssetName?
【发布时间】:2021-03-02 07:24:09
【问题描述】:

我试图从一个 AssetImage 对象获取 Flutter 中的文件名。

 Image photo = Image.asset('assets/images/image-not-found.jpg');
 print(photo.image);           // AssetImage(bundle: null, name: "assets/images/image-not-found.jpg")
 print(photo.image.assetName);  // assetName not defined
 print(photo.image.name);       // name not defined

如何获取this assetName属性?

不用在photo.image.toString()上做一些正则表达式就更好了;

编辑:

这里的目的是检索图像名称以进行比较。 所以我只是直接比较。

if(photo.image == AssetImage('assets/images/image-not-found.jpg')){
  print("image was not found");
}

【问题讨论】:

    标签: flutter assets


    【解决方案1】:

    为此尝试 AssetImage。

    var photo = AssetImage('assets/images/image-not-found.jpg');
    print(photo.assetName);
    

    【讨论】:

    • 这种方式行得通,谢谢,但我的图像实际上来自Image.memory,所以它会返回图像类型而不是 AssetImage,如果可能的话,我更愿意坚持下去。
    • assetName 用于 AssetImages 。您无法使用资产名称获取 Image.memory 的名称。名称本身说明资产名称。
    【解决方案2】:

    //你可以使用像这样的拆分方法

    `String toSplit = 'assets/images/image-not-found.jpg';

    var imageName = toSplit.split("/");
    

    打印(var[2]);`

    //你可以得到你的图片名存储在var[2]中。

    【讨论】:

      【解决方案3】:

      首先,在 pubspec 文件中添加一个资产文件夹,如:

      assets:
         - specify a folder where is your assets are stored.
      

      并像这样使用

      Image.asset(
          'assets/images/profile.png',
          fit: BoxFit.fill,
      ),
      

      【讨论】:

        猜你喜欢
        • 2022-01-10
        • 2022-07-27
        • 2021-06-26
        • 1970-01-01
        • 2015-01-27
        • 1970-01-01
        • 1970-01-01
        • 2021-01-12
        • 2018-07-13
        相关资源
        最近更新 更多