基本概念
- 屏幕尺寸:屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米。
- 屏幕分辨率:在横纵向上的像素点数,单位是px。
- 屏幕像素密度(ppi):每英寸屏幕所拥有的像素数。可视作等价于dpi
- dp:也叫dip,是一种密度无关像素,在不同像素密度设备上会自动适配。
官方定义在160dpi下,1dip = 1px。
dpi/160 | 像素密度范围 | |
---|---|---|
mdpi | 0.75~1.0 | 120dpi~160dpi |
hdpi | 1.0~1.5 | 160dpi~240dpi |
xdpi | 1.5~2 | 240dpi~320dpi |
xxdpi | 2~3 | 320dpi~480dpi |
xxxdpi | 3~4 | 480dpi~640dpi |
使用dp做屏幕适配依旧会引发问题
Android提供了dp来做屏幕适配,但仍会出现问题。
假设有两个设备:
屏幕宽度 | 屏幕像素密度(dpi) | 屏幕总dp宽度 | 100dp占比 |
---|---|---|---|
720px | 320dpi | 360dp | 28% |
1080px | 400dpi | 432dp | 23% |
这种情况就导致了在不同设备,100dp在屏幕上占比不同。所以使用dp来适配屏幕也不是最完美的解决方案。
如何适配屏幕
百分比适配
给每个分辨率的设备都引入一个value文件夹
比如:
- values-720x1080
- values-1080x1920
- ......
在720x1080分辨率中,<dimen name="x1">1.0px</dimen>
则在1080x1920分辨率中,<dimen name="x1">2.0px</dimen>
网友评论