flutter - 如何获得颤振图像的尺寸?
问题描述
我需要从宽度和高度计算图像的纵横比
解决方案
如果我理解正确,您需要小部件的大小。为此,您必须使用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;
});
推荐阅读
- php - 用php提取JSON
- sql - ORACLE:根据单个列值插入多条记录
- oracle - SP2-0310:无法打开文件“__SUB__CWD__/sales_history/csh_v3.sql”
- php - Laravel 的 Illuminate 分页器找不到查询字符串
- python - 使用 Pi OpenCV 进行图像处理
- java - 如何修复 jFairy 中的 java.lang.NoClassDefFoundError: com/google/inject/AbstractModule
- neo4j - Neo4j APOC A* 有条件
- security - 身份服务器无需密码进行身份验证
- python - Python - 从嵌套列表中创建字典
- excel - 使用功能应用程序 ID 无法为 WScript.CreateObject("Excel.Application") 创建对象