0

在我的 Lg G stylo h634 上,它的分辨率为 (720*1280),尺寸为 5.7 英寸,实际 PPI 为 258。有了这些信息,这款手机应该有:

DP width: 240
DP height: 240
Density: 1.5
Density PPI: 240

但是,当我在这个真实设备上运行我的测试时,它给了我:

DP width: 257
DP height: 258
Density: 2.0
Density PPI: 320

现在,当我运行具有相同规格的手机模拟版本时,会给出第一个指标(密度:1.5,PPI:240 等),这是正确的指标。我不确定为什么会发生这种情况,但是任何人都可以解释为什么模拟版本比真实设备更准确吗?

4

2 回答 2

2

它并不总是关于 DPI 和 PPI。真机配备了各种硬件组件。虽然真实手机和模拟器的规格相同,但真实手机呈现的东西不同,它的缩放比例也不同。我的建议是尝试运行你的应用程序。在更多的物理设备上并与模拟器相比,等效规格之一的结果不会有太大差异。

于 2017-07-01T20:37:16.993 回答
1

但是任何人都可以解释为什么模拟版本比真实设备更准确吗?

它不是。设备就是设备。


OnDisplayMetrics和是实际的物理密度值xdpiydpi例如,文档xdpi

X 维度上每英寸屏幕的精确物理像素。

在您的问题中,您声明该设备的“实际 PPI 为 258”。这适合您从中获得的值,请DisplayMetrics记住像素很少是正方形的,因此xdpiydpi值很少完全相等。


的值density基于制造商设置(我认为是ro.sf.lcd_densityin/system/build.prop)。为什么 LG 决定选择xhdpi而不是hdpi,我不能说。如果我不得不猜测,他们认为现有应用程序在具有这种逻辑密度的设备上看起来更好。模拟器将使用自己的算法。另一个具有类似屏幕的制造商可能会选择hdpi(模拟器选择什么)。

的值densityDpi直接来自density

于 2017-07-01T20:54:35.803 回答