我是Flutter的新手。显然,Image
有不同的类。我正在研究的是:
import 'package:image/image.dart'; // Image Class 1
import 'package:flutter/src/widgets/image.dart'; // Image Class 2
我已使用Image Class 2
加载了资产图片。我不知道如何将其转换为Image Class 1
,反之亦然。 Image Class 1
有两个构造函数Image.fromBytes(...)
和Image.from(Image other)
,但事实是另一个类没有提供图像的字节数组。有什么建议?
答案 0 :(得分:2)
所引用的图像类来自Flutter image
类。该文档是here。您列出的构造函数并不是要在不同的图像类型之间进行转换。对于特定类型的图像,它们是不同的生成器。您引用的Image.from()
静态方法实际上称为“命名构造函数”。 .from
构造函数是常用的Dart数据类构造函数,用于有效地将一个对象复制到另一个对象(与Javascript中的Object.assign({}, myObject)
完全不同。
您试图做的事超出了您在问题中引用的命名构造函数的目的。 Dart在其标准库中确实提供了一个相当强大的图像库。 See Here。
如果您尝试使图像抖动,可以使用以下代码作为示例:
final Widget image = new Image(image: NetworkImage('https://via.placeholder.com/700'));
顺便说一句,有a very helpful VS Code plugin可以自动为您的飞镖模型生成数据类。
编辑:显示如何加载资产图片
如果您尝试加载资产图片,请使用以下内容:
Image.asset(
'assets/images/asset_image.png',
);
当然,您需要在pubspec.yaml中注册资产。为此,请在pubspec.yaml的flutter
部分下,添加以下内容:
assets:
- assets/images/
然后,当您重新编译时,您应该能够加载资产。 Official docs on assets in flutter.