loadImageByProvider static method

Future<Image> loadImageByProvider(
  1. ImageProvider<Object> provider, {
  2. ImageConfiguration config = ImageConfiguration.empty,
})

Implementation

static Future<ui.Image> loadImageByProvider(
  ImageProvider provider, {
  ImageConfiguration config = ImageConfiguration.empty,
}) async {
  Completer<ui.Image> completer = Completer<ui.Image>(); //完成的回调

  ImageStream stream = provider.resolve(config); //获取图片流

  late ImageStreamListener listener; //监听
  listener = ImageStreamListener((ImageInfo imageInfo, bool sync) {
    final ui.Image image = imageInfo.image;
    completer.complete(image); //完成
    stream.removeListener(listener); //移除监听
  });
  stream.addListener(listener); //添加监听

  return completer.future; //返回
}