如何确定高速缓存的网络映像的宽度和高度?

时间:2019-12-20 17:31:03

标签: flutter

有没有一种方法可以获取CachedNetworkImage的高度。我找到了this解决方案来获取常规网络映像的高度。有没有一种方法可以对缓存的图像实施此操作?

1 个答案:

答案 0 :(得分:1)

只需对现有解决方案https://stackoverflow.com/a/57640169/5882307进行一些修改即可。

代码:

  Future<Size> _calculateImageDimension() {
  Completer<Size> completer = Completer();
  Image image = new Image(image: CachedNetworkImageProvider("https://i.stack.imgur.com/lkd0a.png")); // I modified this line
  image.image.resolve(ImageConfiguration()).addListener(
    ImageStreamListener(
      (ImageInfo image, bool synchronousCall) {
        var myImage = image.image;
        Size size = Size(myImage.width.toDouble(), myImage.height.toDouble());
        completer.complete(size);
      },
    ),
  );
  return completer.future;
}

用作:

_calculateImageDimension().then((size) => print("size = ${size}")); // 487.0,696.0

所有应归功于原始作者:https://stackoverflow.com/a/57640169/5882307