如何计算设备的像素密度 (dp)



Galaxy s4的独立像素密度是多少?

我需要它,以便我可以为该手机提供限定符sw???dp

如果您能解释如何计算它,那就太好了。

没有人回答这个问题:S4:分辨率 1080 x 1920 像素(~441 ppi 像素密度),每个 gsmarena公式:px = dp * (dpi/160) 来自谷歌关于"支持多个屏幕"的文章。因此:dp = px/(dpi/160)。因此,最短宽度 (sw) = 1080/(441/160) = 391

同样如此:在 Android 应用设计中使用特定于大小和密度的资源问题

在这里,您可以找到如何计算所需每台设备的sw???dp

支持多屏的应用程序框架

我认为您应该使用这些限定符而不是 96 x 5'(屏幕尺寸):http://developer.android.com/design/style/devices-displays.html(160、240、320、480)。在这种情况下,Galaxy S4,您会得到良好的结果,但是如果您尝试例如使用Nexus4(4,7'),您将获得sw~272而不是380应有的效果,并且在实践中发生。这是您应该在公式中使用的值,您将获得正确的结果。

运行此代码段代码:(API 13+)

int sw = getResources().getConfiguration().smallestScreenWidthDp;

Galaxy s4的密度约为~441ppi,即scale factor约为441/160 = 2.75。 这远高于hdpi(1.5)xhdpi (2.0)。将字体 xml 放入 values-xxhdpi文件夹。

您也可以在此处查看任何进一步的查询。

你总是可以在gsmarena中找到它。

对于其他未知手机,以下是计算dpi的公式:

dpi = ( square_root ( horizontal_pixels ^ 2 + vertical_pixels ^ 2 )) / ( screen_size )

在星系s4的情况下:

  • 水平像素 = 1080
  • 垂直像素 = 1920
  • 屏幕尺寸 = 5.0

然后

dpi = ( square_root ( 1080 ^ 2 + 1920 ^ 2 )) /  5.0
dpi = ( square_root ( 1166400 + 3686400 )) /  5.0
dpi = ( square_root ( 4852800 )) /  5.0
dpi = ( 2202.91 ) /  5.0
dpi = 440.5
dpi = 441 dpi

最新更新