我有图像,我想将它们加载到我的应用程序中。my_app/lib/... - 这里是我的源文件 my_app/assets/images/... - 这里是我的图片
我需要获取 assets/images/ 中的文件列表,然后显示其中的一些(根据其他逻辑)我正在尝试这个
final dir = Directory("assets/images/");
print(dir.existsSync()); // <---- it also print: false
var files = dir.listSync().toList();
files.forEach((e) => list.add(MyImageItem(e.path)));
Run Code Online (Sandbox Code Playgroud)
问题是:我收到异常
FileSystemException: Directory listing failed, path = 'assets/images/'
(OS Error: No such file or directory, errno = 2)
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方法:assets/images/、images/、images 等等 我的 pubspec.yaml
flutter:
assets:
- assets/images/
- assets/
Run Code Online (Sandbox Code Playgroud)
当我直接创建 Image 时一切都很好
new Image(image: AssetImage("assets/images/cat.png"))
Run Code Online (Sandbox Code Playgroud)
我知道之前(一个月前)每个资源都必须直接在 pubspec.yaml 中声明,但现在 assets/images/ 没问题。我可以通过直接路径加载文件。为什么我无法访问目录?如何获取目录中的文件列表以从我的代码中获取它们?
当您将文件添加到资产时,这意味着您已经知道它们的路径。将所有图像路径存储在列表中并在需要时访问它们。
例如,如果您有 3 张图像
your_app/assets/images/image1.jpg
your_app/assets/images/image2.jpg
your_app/assets/images/image3.jpg
创建一个列表并存储所有这些,如下所示:
List<String> imagePaths = ['assets/images/image1.jpg', 'assets/images/image2.jpg', 'assets/images/image3.jpg'];
Run Code Online (Sandbox Code Playgroud)
例如,如果您想访问第一张图像,请使用
AssetImage(imagePaths[0])
归档时间: |
|
查看次数: |
10228 次 |
最近记录: |