Android市场的机型很多,这样我们android开发者就要适配格式各样的机型,而主流的适配主要有图片适配、dimens适配、layout适配、java代码适配、权重适配,这些适配方法网上很多!小编要介绍个非主流的屏幕适配!
优点:无论增加新设备还是新布局,都可轻松搞定!
像素密度等级 | 屏幕像素 | 逻辑尺寸(dp单位) |
ldpi-0.75 | 320*240 | w320dp |
mdpi-1 | 480*320 | w320dp |
hdpi-1.5 | 800*480 | w320dp |
xhdpi-2 | 1280*720 | w360dp |
xhdpi-2 | 1280*768 | w384dp |
xxhdpi-3 | 1920*1080 | w360dp |
xxxhdpi-4 | 2560*1440 | w360dp |
逻辑尺寸如何计算呢?
逻辑尺寸= 名目像素宽/像素密度等级
其实我们就是根据逻辑尺寸做的适配,这样一来我们在这里只需要做3中适配即可
我们选择一类屏幕分辨率作为标准,在工作中以UI设计师切图的分辨率作为标准即可!在此小编选择480*320作为适配的标准.
首先我们为标准的分辨率生成一套1到1000的基准值,形如:
<dimenname="my1dp">1.00dp</dimen>
<dimenname="my2dp">2.00dp</dimen>
<dimenname="my3dp">3.00dp</dimen>
<dimenname="my4dp">4.00dp</dimen>
相信你会用java代码生成这有规律的内容!
第二步,在我们项目的res目录下,创建文件夹values-sw320dp,在此文件夹下创建dimens.xml文件,将生成的1-1000基准直沾进去!文件夹的命名为”values-sw”+逻辑尺寸值+dp,这是固定格式!
第三步,我们要做其他尺寸的适配,公式:i/(基准值/逻辑尺寸值) i是基准值1-1000,我们给360dp做适配.也就是i/(320/360),形如:
<dimenname="base1dp">1.12dp</dimen>
<dimenname="base2dp">2.25dp</dimen>
<dimenname="base3dp">3.37dp</dimen>
<dimenname="base4dp">4.50dp</dimen>
同样使用java代码生成这样有规律的内容!将其放到values-sw360dp文件夹下的xml文件里,以此类推,无需修改布局文件
最后在布局文件中引用即可,例如:
android:layout_margin="@dimen/height_15"