ppi.png话不多说,一张图解决所有困惑
PPI = Pixels per inch,每英寸上的像素数,即 “像素密度”
美工作图时,应该以xhdpi(320dpi)为基石,768x1280 这样的分辨率(Android Studio 默认预览的机型是Nexus4 4.7寸 768x1280 xhdpi)。这样用QQ等相关截图工具量出来的px像素就是这个尺寸的2倍dp. 因为xhdpi下 1px=2dp,所以我们只需要在布局文件中填上量出的像素px值除以2即可
公式:
px = dp * ( dpi/160 )
分辨率:指手机屏幕的像素点数。android常见的屏幕尺寸有480x800, 720x1280, 1080x1920等。宽度在前,高度在后。(values-xhdpi-1280x720 文件夹 相反。)
屏幕大小:指手机对角线的物理尺寸,以英寸为单位。一英寸大概2.54厘米。
密度(dpi - dots per inch或ppi - pixels per inch):指每英寸的像素点数。数值越高,显示越细腻。相同的分辨率,不同的尺寸会产生不同的屏幕密度,导致andorid手机屏幕碎片化。而屏幕密度是android屏幕将界面进行缩放显示的依据。
密度分为:实际密度和系统密度
实际密度是我们根据手机屏幕分辨率和尺寸计算得到的dpi。
系统密度指:每部android手机屏幕都有一个初始固定的密度,这些值是120,160,240,320,480。它们之间间隔值呈现2倍的关系。一般情况下,240x320的屏幕是低密度的120dpi,即ldpi;320x480的屏幕是中密度160dpi,即mdpi;480x800的屏幕是高密度的240dpi,即hdpi;720x1280的屏幕是超高密度320dpi,即xdpi;1080x1920的屏幕是超超高密度480dpi,即xxhdpi。android对界面元素进行 缩放依据的是系统密度,而不是实际密度。
注意:密度为440dpi已经很清晰了。
ldpi(120dpi) - 240x320 1dp = 0.75px
mdpi(160dpi) - 320x480 1dp = 1px 屏幕宽度:320dp
hdpi(240dpi) - 480x800 1dp = 1.5px 屏幕宽度:320dp
xhdpi(320dpi) - 720x1280 1dp = 2px 屏幕宽度:360dp
xxhdpi(480dpi) - 1080x1920 1dp = 3px 屏幕宽度:360dp
各个资源文件夹中的图片尺寸同样符合ldpi:mdpi:hdpi:xhdpi:xxhdpi=3:4:6:8:12的规律。如果有一张图片,我们设置了固定的像素大小,并且希望android不会根据屏幕密度对它进行缩放,则可以把它放在drawable-nodpi文件夹中,这个文件夹中得图片以实际像素大小显示,不被缩放(dp值会改变哦)。
dp和px的换算以系统密度为主。sp与px的换算同dp与px的换算一样。
** 为手机提供UI,建议只针对xhdpi做一套图即可,在PS中768x1280(4.7寸 Nexus4 xhdpi)的画布上画图。**
将xhdpi为基准,各个比例为:
ldpi | mdpi | hdpi | xhdpi | xxhdpi | xxxhdpi |
---|---|---|---|---|---|
0.375 | 0.5 | 0.75 | 1 | 1.5 | 2 |
常见手机的分辨率:
机型 | 分辨率 | 尺寸 | ppi | 所属dpi |
---|---|---|---|---|
三星I9300(s3) | 1280x720 | 4.8 | 306ppi | hdpi |
小米3 | 1920 x 1080 | 5 | 441ppi | xhdpi |
小米2s | 1280x720 | 4.3 | 342ppi | xhdpi |
红米note | 1280x720 | 5.5 | 267ppi | hdpi |
iPhone 5 | 1136x640 | 4.0 | 326ppi | xhdpi |
iPhone 5s | 1136x640 | 4.0 | 326ppi | xhdpi |
HTC OneX | 1280x720 | 4.7 | 312ppi | xhdpi |
关注我的公众号.jpg
网友评论