为什么我的安卓模拟器和安卓手机在设备密度和 DPI 方面给我不同的结果?

  • 本文关键字:方面 DPI 结果 模拟器 手机 android ppi
  • 更新时间 :
  • 英文 :


在我的 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等(,这是正确的指标。我不确定为什么会发生这种情况,但任何人都可以解释为什么模拟版本比真实设备更准确吗?

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

但是谁能解释为什么模拟版本比真实设备更准确?

不是。设备就是设备。


DisplayMetricsxdpiydpi是实际的物理密度值。例如,xdpi的文档具有:

X 维度中每英寸屏幕的确切物理像素。

在您的问题中,您指出该设备的"实际 PPI 为 258"。这符合您从DisplayMetrics获得的值,请记住像素很少是方形的,因此xdpi值和ydpi值很少完全相同。


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

densityDpi的值直接从density驱动。

最新更新