我需要根据宽度和高度从图像计算宽高比
答案 0 :(得分:0)
如果我对您的理解正确,则需要小部件的大小。
为此,您必须使用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;
NetworkImage
的UPS:
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;
});