我已经读了一段时间关于dp, px, ppi
和dpi
的书,我迷路了。
为什么像Galaxy Note 3
这样的大手机(5.7inch
显示)可以有与dp
相同的Moto X
(只有4.7inches
)?
我对每一个的计算返回awidth=360dp
和height=640dp
。似乎很多高密度的手机都在这个范围内。这是真的还是我误解了?
我使用以下方法计算我的值:How to determine the screen width in terms of dp or dip at runtime in Android?
最佳答案
因为这不仅仅是屏幕大小的问题,也是屏幕密度的问题。我会解释的。从px到dp单位的换算公式如下:
dp=px*160/dpi,其中dpi是屏幕密度。
因此,根据您计算的值(取宽度),屏幕密度的值如下:
银河注3(宽度=1080px):dpi=1080*160/360=480
Moto X(宽度=720像素):dpi=720*160/360=320。
Galaxy Note 3和Moto X具有相同的宽度=360 dp,因为相同的宽度/dpi比率=2.25(高度/dpi比率=4时相同)。现在想象一下moto x的密度和银河注3一样。在这种情况下,你会得到一个更小的宽度=240 dp的moto x。