首页 > 解决方案 > 如何获得颤振图像的尺寸?

问题描述

我需要从宽度和高度计算图像的纵横比

标签: flutterdart

解决方案


如果我理解正确,您需要小部件的大小。为此,您必须使用GlobalKey

final _key = GlobalKey();

然后key在创建小部件时设置:

Image.asset('asset_image', key: _key,); //it can be any widget

在你可以得到这个小部件的大小之后:

Size size = _key.currentContext.size;
double height = _key.currentContext.size.height;
double width = _key.currentContext.size.width;
double aspectRatio = _key.currentContext.size.aspectRatio;

UPD 用于NetworkImage

NetworkImage不是小部件,它可以在 中使用Image,因此您可以获得如上例所示的纵横比:

Image(image: NetworkImage('url'), key: _key,);

或者您可以从侦听器获取宽度和高度并计算比率:

Image(image: NetworkImage('url'))
    .image
    .resolve(ImageConfiguration())
    .addListener((ImageInfo info, bool _) {
  int width = info.image.width;
  int height = info.image.height;
});

推荐阅读