=。=待业青年,闲着也是闲着,写写博客咯。第一篇关于Android屏幕的适配,参考了一些文章自己归纳整理的了一哈,写的不好,请轻喷
参考博客
参考博客 简书文献
DPI:dots per inch 是指在1 inch的物理长度包含多少个dot。
PPI:pixels per inch 是指1 inch的物理长度包含多少个pixel。
在Android中DPI等价PPI,具体区别可以参考PPI vs. DPI: what’s the difference?
如何计算PPI: PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数
以小米3为例,小米3的参数为1920*1080,屏幕为5英寸。则 √(1920² + 1080²) / 5 ~ 441PPI。
Android中inch和PPI的划分
| 名称 | 像素范围(dpi) |
|---|---|
| ldpi | 100 ~ 160 |
| mdpi | 160 ~ 240 |
| xdpi | 240 ~ 320 |
| xxdpi | 320 ~ 480 |
| xxxdpi | 480 ~ 640 |
下图为PPI屏幕划分:

px和dp之间如何换算
dp * (dpi / 160) = px 还是以小米3手机为例 1dp * 441ppi / 160 ~ 3px
dp = px / (dpi * 160)
在android中应如何选择图片
举例来说,小米Pad的屏幕密度为326dpi,如果需要显示的图片大小为20dp,那么就需要提供一个 20 (326 / 160) = 40px的图片才能达到最佳显示效果,如果还要适配一个163dpi的屏幕,那么还需要再提供一个20 (163 / 160) = 20px的图片。
哪么一个20dp的图片在不通设备上如何显示,这次以ipd为例 
分别计算图片在设备中占多少inch
ipad2 = 20 * (132 / 160) * (9.7 / (math.sqrt(1024 * 1024 + 768 * 768))) ipad_retina = 20 * (264 / 160) * (9.7 / (math.sqrt(2048 * 2048 + 1536 * 1536)))结果都是相同的,这就是dp的功能
如果只提供了一个大小为20px的图片,为了保证图片在所有设备上的物理大小都一样,高DPI的设备上系统会拉伸图片,低DPI的设备上图片会被缩小,这样既会影响UE也会影响APP的执行效率。在anroid中应如何选择图片呢 
sp和dp的区别
Android中字体的大小由sp表示,然而在Android系统允许用户修改文字的尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。
新闻热点
疑难解答