Android屏幕适配实例教程
即使只是练习项目,仍然要使用屏幕适配,这样我们就可以跟着设计图上的单位参数敲,效率会快很多
项目的示范代码使用kt语言,但没有用到什么高级特性,完全不懂的参考这个链接,文章参考代码已经上传到Github,本篇相关的设计图链接戳这里
这里提供一个App的UI设计图小白日记,仅供参考
前期与UI之间的沟通
1)确定设计图基准
=可以简单理解为以某个尺寸为基准,然后通过改变对应的比例的方式去设置真实的单位数值,这就意味了我们在开发之前要和UI设计师沟通好基准设计图的宽高尺寸,单位是px或dp有,通常Android是以360*640dp为基准
2)标注方式
推荐使用蓝湖(https://lanhuapp.com/?home),切图统一使用上传蓝湖的形式,避免微信,U盘传输带来的版本混乱问题,拿到UI给的分享链接后,就可以查看需要的数据了
而且它自带转换功能,所以如果UI设计是以某一px尺寸为单位设计,它也可以帮你转换成相应的dp数值
今日头条屏幕适配方案
1)配置
基于头条屏幕方案的AndroidAutoSize,使用方式,先在module下的build.gradle下添加依赖
implementation 'me.jessyan:autosize:1.1.2'
然后在module的AndroidManifest权限菜单下添加基本设计图的尺寸,这里我们是使用360*630dp作为基本尺寸单位,这样配置工作就完成了
android:name="design_width_in_dp"
android:value="360"/>
android:name="design_height_in_dp"
android:value="640"/>
一般来说,只要我们按照基准设计图的尺寸写AutoSize就可以为我们进行适配了,当在一些特殊情况下我们还要进行一些配置。
头条的适配方案是选择高度或宽度两者之一为基准进行适配(姑且不管原理),在该库的AutoSizeConfig类的源码中我们可以看到isBaseOnWidth默认就是true,也就是说改库默认就是以宽度进行适配的
isBaseOnWidth.png
2)宽度适配,高度适配,取消适配
那什么样的页面是用高度适配比较合适,什么样的页面是用宽度适配比较合适呢
比如我们使用ScrollView包裹着线性布局,这种页面就使用宽