如何确定缓存的网络图片的宽度和高度?

6

有没有办法获取CachedNetworkImage的高度?我找到了这个解决方案,可以获取常规网络图片的高度。是否有办法将此实现到缓存图像上?

1个回答

15

对这个现有解决方案 https://dev59.com/jlcP5IYBdhLWcg3wP36t#57640169 进行了一点小修改,就可以使用了。

代码:

  Future<Size> _calculateImageDimension() {
  Completer<Size> completer = Completer();
  Image image = new Image(image: CachedNetworkImageProvider("https://istack.dev59.com/lkd0a.webp")); // 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://dev59.com/jlcP5IYBdhLWcg3wP36t#57640169


你能解释一下你做了什么修改吗?看起来完全一样。 - Fuad All
代码中我添加的部分已经被注释掉了。请仔细阅读。我使用了缓存网络图片提供程序,而不是Image.network()小部件。 - OMi Shah
1
感谢澄清。你的内联代码注释需要滚动才能看到。 - Fuad All

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接