借鉴drawable文件夹,values使用dimens控制字体大小、边距大小。适配Android不同机型,不同屏幕

以前一直是个Get用户,一直都是伸手党,最近刚好项目中要用到机型适配,试了很多方法(配置不同layout文件夹,不同的layout文件等)。但都感觉后期维护工作量巨大,后来从图片资源适配获得灵感,使用value不同的dimens文件,达到适配的效果:
1 、创建不同的位图(Android官方介绍)
  • xxxhdpi: 5.0                    500*500 
  • xxhdpi: 3.0                      300*300
  • xhdpi:2.0                      200*200
  • hdpi:1.5                        150*150
  • mdpi:1.0(baseline)    100*100
  • ldpi:0.75                       75*75 
文件夹名称 比例 图片大小(示例) 屏幕宽度 DPI值 分辨率举例
drawable-xxxhdpi 5.0 500*500 1440左右 640dpi 2560*1440(Nexus6)
drawable-xxhdpi 3.0 300*300 1080左右 480dpi 1080*1920
drawable-xhdpi 2.0 200*200 720左右 320dpi 720*1280
drawable-hdpi 1.5 150*150 480左右 240dpi 480*800,480*854,540*960
drawable-mdpi 1.0(BaseLine) 100*100 360左右 160dpi 320*480
drawable-ldpi 0.75 75*75 240左右    


2、借鉴drawable文件夹,依次创建values,values-mdpi, values-hdpi,values-xhdpi, values-xxhdpi, values-xxxhdpi。 (鉴于现在ldpi的机型很少,就直接使用默认的values来做适配)。

测试的过程中,使用mdpi做为 基线 ,我针对像素单位dp使用10dp, 字体大小单位sp使用10sp。其它文件的单位,分别使用上面的比例关系,设置字体,边距大小。

文件夹名称 字体大小sp 距离大小dp 手机输出值(字体大小) 手机显示值(距离大小)
values-xxxhdpi 50 50 175.0 175.0
values-xxhdpi 30 30 90.0 90.0
values-xhdpi 20 20 40.0 40.0
values-hdpi 15 15 22.5 22.5
values-hdpi(854*480)

25.87 22.5
values-mdpi 10 10 10.0 10.0
values-ldpi 7.5 7.5 5.625 5.625


你可能感兴趣的:(借鉴drawable文件夹,values使用dimens控制字体大小、边距大小。适配Android不同机型,不同屏幕)