flutter - 获取屏幕抖动的物理尺寸

标签 flutter dart

我正在构建一个 flutter 应用程序,该应用程序需要以厘米/英寸为单位的屏幕精确尺寸。

根据docs

By definition, there are roughly 38 logical pixels per centimeter, or about 96 logical pixels per inch, of the physical display. The value returned by devicePixelRatio is ultimately obtained either from the hardware itself, the device drivers, or a hard-coded value stored in the operating system or firmware, and may be inaccurate, sometimes by a significant margin.



我已经尝试在应用程序中使用这些比率,但是它们甚至还不接近。

有没有一种方法可以准确计算屏幕尺寸?

最佳答案

Flutter的像素坐标以逻辑像素而非物理像素给出。但是,MediaQuery将为您提供转换率。

var mediaQuery = MediaQuery.of(context);
var physicalPixelWidth = mediaQuery.size.width * mediaQuery.devicePixelRatio;
var physicalPixelHeight = mediaQuery.size.height * mediaQuery.devicePixelRatio;

(请注意,此代码只能在BuildContext对象可用的地方运行,例如build方法或StatefulWidget的伴随State类。)

关于flutter - 获取屏幕抖动的物理尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59707923/

相关文章:

gradle - gradle一直崩溃,已经尝试删除gradle文件夹,甚至尝试重新安装我所有的IDE,包括java,flutter等

Flutter:创建带有可选 body 部位的 BodyMap 小部件

Flutter 如何向用户显示 FPS(每秒帧数)?

flutter - 错误: 'package:flutter/src/widgets/media_query.dart' : Failed assertion: line 715 pos 12: 'context != null' : is not true

flutter - BannerAd.dispose 不工作 Flutter Admob

java - 使用不包含 Navigator (Flutter) 的上下文请求的 Navigator 操作

flutter - 缩放嵌套 RichText 小部件以实现可访问性

flutter - 如何仅显示已完成项目的列表?

flutter - 无法使用 Flutter Stateful 小部件

flutter - 如何从带有 flutter 的TimeOfDay以AM或PM格式显示时间?