【问题标题】:How to calculate the pixel density (dp) of a device?如何计算设备的像素密度(dp)?
【发布时间】:2013-10-07 11:44:47
【问题描述】:

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

我需要它,以便我可以为该手机设置一个限定符 sw???dp

如果你能解释如何计算它会很棒。

【问题讨论】:

  • 看我的回答here

标签: android resolution density-independent-pixel


【解决方案1】:

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

正如这里所说:Use size and density-specific resources problems in Android app design

【讨论】:

  • 谢谢!为了实际回答问题而不仅仅是提供数学方程式!
【解决方案2】:

在这里您可以找到如何为您想要的每台设备计算sw???dp

Application Skeleton to support multiple screen

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

运行这个 sn-p 代码:(API 13+)

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

【讨论】:

    【解决方案3】:

    Galaxy s4 的密度约为 441ppi,即scale factor 约为 441/160=2.75。这比hdpi(1.5)xhdpi (2.0) 高得多。把你的字体xml values-xxhdpi 文件夹。

    您也可以在这里查看look here 以了解更多问题。

    【讨论】:

      【解决方案4】:

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

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

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

      以galaxy 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
      

      【讨论】:

        猜你喜欢
        • 2014-07-13
        • 1970-01-01
        • 2018-06-16
        • 1970-01-01
        • 2016-02-19
        • 2019-02-18
        • 2017-10-06
        • 2020-04-04
        • 2012-01-07
        相关资源
        最近更新 更多