在Flutter中drawImage或paintImage均无法正常工作

我基本上想将资产文件夹中的图像显示在画布上。

    import 'package:flutter/material.dart' as ui;

...

ui.Image img = ui.Image.asset("images/some_image.png");

ui.paintImage(canvas: canvas, image: img);

当我尝试将img分配给paintImage的图像时,收到以下错误消息。

无法将参数类型’图像(C:\ ABC \ flutter \ packages \ flutter \ lib \ src \ widgets \

image.dart)分配给参数类型’图像(C:\ ABC \ flutter \ bin \ cache \ pkg \ sky_engine \

lib \ ui \ painting.dart)”。

我真的不知道会出什么问题,我已经看到其他与ui.Image具有类似方法的代码。

请指教。

回答:

Image在flutter中有两个类,位于不同的包中。

有一个Widget,其行为类似于一个Widget,可以通过资产,内存或网络通过其命名构造函数实例化。

还有一个ui包Image,它在较低级别(例如在)中绘画时使用CustomPainter。由于此版本位于ui软件包中,因此通常以这样的ui前缀导入:

import 'dart:ui' as ui;

不要导入materialui!这将导致很多混乱。

要制作小部件,请使用Image.asset构造函数,并传递资产名称。

要从ui.Image资产中使用此代码段,请执行以下操作:

  Future<ui.Image> load(String asset) async {

ByteData data = await rootBundle.load(asset);

ui.Codec codec = await ui.instantiateImageCodec(data.buffer.asUint8List());

ui.FrameInfo fi = await codec.getNextFrame();

return fi.image;

}

以上是 在Flutter中drawImage或paintImage均无法正常工作 的全部内容, 来源链接: utcz.com/qa/421401.html

回到顶部