逻辑像素如何转换为物理像素

Keo*_*123 5 flutter

第一个问题:

如果我创建一个宽度设置为 50(逻辑像素)的容器小部件,那么该小部件最终会占用多少物理像素?
假设答案是 50*devicePixelRatio 并且会四舍五入为整数值是否正确?

第二个问题:

从技术上讲,这个问题是由第一个问题产生的。假设我们有 2 台设备,每台设备都有相同的屏幕宽度、相同的分辨率,但屏幕高度不同。理论上,两个设备的逻辑像素宽度值应该相同。不过,一台设备的PixelRatio会更高。因此,物理像素中的最终宽度值将有所不同,这可能会导致容器之一溢出,因为我的假设是最终容器小部件宽度将乘以 devicePixelRatio。

Cop*_*oad 2

假设答案是 50*devicePixelRatio 并且会四舍五入为整数值是否正确?

是的

从技术上讲,这个问题是由第一个问题产生的。假设我们有 2 台设备,每台设备都有相同的屏幕宽度、相同的分辨率,但屏幕高度不同。理论上,两个设备的逻辑像素宽度值应该相同。不过,一台设备的PixelRatio会更高。因此,物理像素中的最终宽度值将有所不同,这可能会导致容器之一溢出,因为我的假设是最终容器小部件宽度将乘以 devicePixelRatio。

比方说

dvp = 1对于第一台设备和dvp = 2第二台设备。所以第一部手机的宽度50

1 * 50 = 50设备像素

对于第二台设备,它将是

2 * 50 = 100设备像素

但这并不意味着Container width2x在第二部手机上运行,​​并且您可能会遇到溢出错误。一点也不!!!

实际上,在第一个电话50设备中,像素用于创建50逻辑像素框(清晰度较低),而在第二个电话100设备中,像素用于创建50逻辑像素框(清晰度较高