什么是颤振的测量单位

Khá*_* Đỗ 12 flutter flutter-layout

像往常一样,我们使用dp for Android和pt(point)for ios作为度量单位.

1磅= 1/72英寸

1 dp = 1/160英寸

但我不知道颤动的测量单位是什么

例:

SizedBox(高度:16.0)

要么

TextStyle(fontSize:23.0)

它只是一个双数,多少dp或pt等于1.0(颤动)?它是如何计算的?

Rod*_*y R 16

Flutter 中的度量单位是逻辑像素。逻辑像素相当于厘米英寸,并且不会像标尺那样根据分辨率而变化。

1 厘米 = 38 个逻辑像素

1 英寸 = 96 个逻辑像素

逻辑像素不同于设备(也称为物理)像素。设备/物理像素是显示器中发光的点/点的数量。

选择此数字是出于历史原因,并且来自 1980 年。来源:Microsoft


Cop*_*oad 7

这一切都取决于设备像素比。例如:

var pixelRatio = MediaQuery.of(context).devicePixelRatio; // 2
Run Code Online (Sandbox Code Playgroud)

并假设您正在使用SizedBoxwith height: 10,例如:

SizedBox(height: 10); // 10 dp
Run Code Online (Sandbox Code Playgroud)

这意味着您在该设备上SizedBox2 * 10 = 20px很高。


Tre*_*ree 6

来自https://docs.flutter.io/flutter/dart-ui/Window/devicePixelRatio.html:

每个逻辑像素的设备像素数.这个数字可能不是两个人的权力.实际上,它甚至可能不是整数.例如,Nexus 6的设备像素比为3.5.

设备像素也称为物理像素.逻辑像素也称为与设备无关或与分辨率无关的像素.

根据定义,物理显示器每厘米大约有38个逻辑像素,或每英寸大约96个逻辑像素.devicePixelRatio返回的值最终是从硬件本身,设备驱动程序或存储在操作系统或固件中的硬编码值获得的,并且可能是不准确的,有时是很大的余量.

Flutter框架以逻辑像素运行,因此很少需要直接处理此属性.

  • 这是谷歌提供的尺寸:mdpi (1x)(基线):160 dpi,hdpi (1.5x):240 dpi,xhdpi (2x):320 dpi,xxhdpi 3x:480 dpi,xxxhdpi 4x:640 dpi。意思是1英寸有160dp。如果你的手机是mdpi,1英寸有160像素,如果是hdpi vv则有240像素。回到flutter,按照你的答案,这意味着1英寸有96个单位(我不知道名字),以及尺寸分别是:mdpi:96 dpi hdpi:144 dpi xhdpi:192 dpi xxhdpi:288 dpi xxxhdpi:384 dpi。这样对吗? (2认同)