从毫米计算逻辑像素

Bra*_*sen 3 dart flutter

我有一个宽度、高度、填充......以毫米为单位的设计。我现在正试图弄清楚如何将这些数字转换为 Flutter 使用的逻辑像素系统。
我找到了设备像素比的文档,但我不知道如何解释这个数字,我引用:

Flutter 框架以逻辑像素为单位进行操作,所以很少需要直接处理这个属性。

所以我不确定这是否是要走的路。
我的问题归结为:是否有一种简单的方法可以从毫米计算到适用于 Android 和 iOS 的逻辑像素?

Rém*_*let 6

Flutter的单位是DP或dip(又名密度无关像素)。正如其名称所暗示的,它与屏幕像素比无关。

和毫米有什么区别?没有什么真正重要的。转换 mm>dp 或 dp>mm 类似于 mm>inch/inch>mm。

他们之间的关系相当简单:

1 英寸 = 25.4 毫米 = 160.0 DP

这意味着 1 毫米 = 6.299 DP


Mar*_*rcG 5

我会说目前接受的答案并不准确。

您可以打印真实手机的逻辑像素数,如下所示:

maxWidth = MediaQuery.of(context).size.width; 
maxHeight = MediaQuery.of(context).size.height; 
print("maxWidth = $maxWidth / maxHeight = $maxHeight");
Run Code Online (Sandbox Code Playgroud)

如果有真正的 iPhone 和 iPad 的人可以运行此代码并告诉我生成的 maxWidth 和 maxHeights,我将不胜感激。到目前为止,对于 Android 手机,我已经将结果与实际手机尺寸进行了比较。我得到的是这样的:

  • 银河S6?高度为 5.668537826 dp/mm,宽度为 5.668537826 dp/mm。
  • 银河S7?高度为 5.668537826 dp/mm,宽度为 5.668537826 dp/mm。
  • 银河S9?高度为 5.223614747 dp/mm,宽度为 5.585946405 dp/mm。
  • 像素 XL ? 高度为 5.612956709 dp/mm,宽度为 6.007177748 dp/mm。

在此处查看我的电子表格: https : //docs.google.com/spreadsheets/d/1zmGyeKSf4w4B-bX4HSY4oSuh9RkIIkFwYSd3P9C7eX8/edit?usp=sharing

更新: