最小宽度360dp Android屏幕适配—被偷走的dp
发布时间:2017-05-11
来源:服务器之家
一、Android手机屏幕DPI
DPI概念自行百度
Android手机按照不同DPI分为:ldpi、mdpi、 hdpi、 xhdpi、 xxhdpi等。
在不同的DPI上,px和dp有不同的比例关系,关系如下
DPI类型
DPI
dp
px
ldpi
0.75
mdpi
hdpi
1.5
xhdpi
Nexus 5x
≈2.6
xxhdpi
Nexus 6/6p
3.5
二、不同设备的dp宽度
设备
分辨率
DPI
宽(px)
宽(dp)
HTC Tatoo
240x320
120 (ldpi)
LG Optimus
320x480
160 (mdpi)
Nexus one/s
480x800
240 (hdpi)
Galaxy Nexus
720x1280
320 (xhdpi)
Nexus 5
1080x1920
480 (xxhdpi)
Nexus 5x
1080x1920
≈411.4
Nexus 6/6p
1440x2560
≈411.4
由上表可知:
在ldpi、mdpi和hdpi设备上屏幕的宽度都是320dp
在xhdpi和xxhdpi设备上屏幕的宽度都是360dp
而在420dpi和560dpi设备上屏幕的宽度都约等于411.4dp
三、面临的问题
目前主流的分辨率一般为720x1280和1080x1920,所以一般设计师在设计Android应用时会选择720x1280的画布进行设计,如果只切一套图,工程师会把图放到xhdpi的资源文件夹中,此时,在xhdpi和xxhdpi的屏幕上都可以正常适配,但是在hdpi的屏幕上就会出现问题。
从上面的表格可以知道在xhdpi和xxhdpi时,屏幕的dp宽都是360dp;而在480x800的hdpi时,屏幕的dp宽度是320dp,少了40个dp,如果屏幕的dp宽度保持360dp的话,需要的像素宽度应该是540px,但市面上大部分的hdpi的手机都是480px的像素宽度。
为了适配480x800的手机屏幕,需要设计师在切图的时候也要切出一套hdpi的图,并且是480*800分辨率下的hdpi的图。
另外在写布局文件设置宽度的时候,也要需要考虑这个差值,hdpi下的dp宽度应该是xhdpi或xxhdpi下的dp宽度的0.8~0.9倍