【发布时间】:2018-11-08 19:15:13
【问题描述】:
像往常一样,我们对 Android 使用 dp,对 ios 使用 pt(point) 作为测量单位。
1 磅 = 1/72 英寸
1 dp = 1/160 英寸
但我不知道颤振中的计量单位是什么
示例:
SizedBox(高度:16.0)
或
TextStyle(fontSize: 23.0)
它只是一个双数,多少 dp 或 pt 等于 1.0(颤振)?是怎么计算的?
【问题讨论】:
像往常一样,我们对 Android 使用 dp,对 ios 使用 pt(point) 作为测量单位。
1 磅 = 1/72 英寸
1 dp = 1/160 英寸
但我不知道颤振中的计量单位是什么
示例:
SizedBox(高度:16.0)
或
TextStyle(fontSize: 23.0)
它只是一个双数,多少 dp 或 pt 等于 1.0(颤振)?是怎么计算的?
【问题讨论】:
来自https://docs.flutter.io/flutter/dart-ui/Window/devicePixelRatio.html:
每个逻辑像素的设备像素数。这个数字可能 不是二的幂。事实上,它甚至可能不是整数。为了 例如,Nexus 6 的设备像素比为 3.5。
设备像素也称为物理像素。逻辑像素 也称为与设备无关或与分辨率无关 像素。
根据定义,每厘米大约有 38 个逻辑像素,或者 物理显示器每英寸大约有 96 个逻辑像素。价值 devicePixelRatio 返回的最终是从 硬件本身、设备驱动程序或存储在 操作系统或固件,并且可能不准确,有时由 很大的利润。
Flutter 框架以逻辑像素运行,因此很少使用 需要直接处理这个属性。
【讨论】:
Flutter 中的度量单位是Logical Pixels。逻辑像素相当于 cm 或 inches,并且不会像尺子那样因分辨率而异。
1 厘米 = 38 个逻辑像素
1 英寸 = 96 个逻辑像素
逻辑像素不同于设备(也称为物理)像素。设备/物理像素是显示器中发光的点/点的数量。
这个数字是出于历史原因选择的,来自 1980 年。来源:Microsoft
【讨论】:
这一切都归结为设备像素比。例如:
var pixelRatio = MediaQuery.of(context).devicePixelRatio; // 2
并假设您将SizedBox 与height: 10 一起使用,例如:
SizedBox(height: 10); // 10 dp
这意味着您的SizedBox 在该设备上将是2 * 10 = 20px。
【讨论】:
【讨论】: