如何在具有源图像的 Flutter 中覆盖资源图像?

2024-02-12

我对 Dart 和 Flutter 相当陌生,并且在从源图像覆盖现有资产图像时遇到困难。

我的尝试:

try {
 File localFile = File('assets/images/myImage.png');
 localFile.writeAsBytesSync(originFile.readAsBytesSync());
catch (e) {
 log(e.toString());
}

I get:

[log] FileSystemException: Cannot open file, path = 'assets/images/myImage.png' (OS Error: No such file or directory, errno = 2)

我确实在中定义了资产文件夹pubspec.yaml:

 assets:
    - assets/images/

好的,所以我在某处读到可以像这样访问资产文件:

import 'package:flutter/services.dart' show rootBundle;
final byteData = await rootBundle.load('assets/images/myImage.png');

但我不知道如何转换byteData to a File代表实际文件的对象。

我想我在这里遗漏了一些非常基本的东西。或者也许有一种与这种方法无关的正确方法来做到这一点?

请帮忙。

提前致谢!


如果您想在用户设备上写入文件,您应该查看此处:https://flutter.dev/docs/cookbook/persistence/reading-writing-files https://flutter.dev/docs/cookbook/persistence/reading-writing-files

共享首选项是手机中应用程序可以写入的空间,因此这正是您想要的!

资产是您应用程序的一部分,不应在应用程序内进行修改。

在构建过程中,Flutter 将资产放入一个名为的特殊存档中 应用程序在运行时读取的资源包。据flutter网站报道 https://flutter.dev/docs/development/ui/assets-and-images#asset-bundling

希望这可以帮助!

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

如何在具有源图像的 Flutter 中覆盖资源图像? 的相关文章

随机推荐