将dp转换为px和px转换为dp。概念上的误解。

时间:2018-06-06 09:10:59

标签: android android-layout

关于将dp转换为px和px转换为dp,我有点困惑。公式就是这样

  

px = dp *(dpi / 160)

让我们考虑两个屏幕A& B密度分别为160 dpi和320 dpi。这本身意味着在相同区域B中具有比A更多的像素数,这意味着对于相同的屏幕尺寸,160dpi屏幕的像素尺寸应该更大并且应该等于320dpi屏幕的2像素的物理尺寸。但是,在B的公式中,这给出了B的1个像素等于2个密度独立像素的物理尺寸或160dpi屏幕的2个像素。我在这里错过了什么?

1 个答案:

答案 0 :(得分:0)

尝试通过此示例了解缩放系统。假设您要在每个屏幕上显示 48dp x 48dp 大的位图(与密度无关)。 我们有:

  • mDPI,160dpi屏幕(比率 1x ) - >位图: 48x48 px (旧设备)
  • hDPI,240dpi屏幕(比率 1.5x ) - >位图: 72x72像素(48 x 1.5)
  • xhDPI,320dpi屏幕(比率 2x ) - >位图: 96x96 px(48 x 2)
  • xxhDPI,480dpi屏幕(比率 3x ) - >位图: 144x144 px(48 x 3)
  • xxxhDPI,640dpi屏幕(比率 4x ) - >位图: 192x192 px(48 x 4)

简而言之,要回答您的问题,不同密度的像素的数量不同,但 dps 的数量相同。