这几周在对移动端进行屏幕适配时遇到的一些问题和解决方法记录如下:
起初是不知道有适配方案的,这点非常糟糕,身为一个安卓程序员竟然不知道适配确实是一件不好的事情,这点以后一定注意。
适配方案是采用张鸿洋的屏幕百分比适配方案。首先在开发的清单文件中表明标准或对照的屏幕尺寸,这里采用的是1280*720,用于定百分比基准。之后就可以在界面上使用px的单位进行适配了。所有宽度尺寸都会和720进行百分比适配,所有长度尺寸都会和1280进行适配,就是百分比适配方案。
遇到的问题和解决方法:
适配需要将LinnearLayout等换成AutoLinearLayout等,起初是每个页面手动修改,这效率很低,于是进行替换,替换时需要小心,不要将其他无关文件也同时替换,比如R文件等,方法就是选择要替换的文件夹再替换,有的页面之前替换过AutoLinearLayout,所以这些会保错,在修改一次就可以了,同时也需要将java文件的LinearLayout也进行文件夹替换,替换成AutoLinearLayout,之前适配过的页面也需要再替换一次。
如果要让一个控件达到适配的效果,那么它的父控件一定是AutoLayout布局,比如一个Textview,它的父控件必须是AutoLayout,它的px值才能达到适配。包括所有listview的item,根节点一定是AutoLayout。
在适配过程中发现,适配特别适合批量作业,效率高。
在适配中发现有的页面很多组件的属性相同,比如配音报告页,左边是文字,权重1,中间是虚线,宽度自适应,右边是文字,权重1.1,这时候就应该将这些重复出现的属性定义在style中,维护起来非常方便,包括作业卡片的标题栏,activity的返回,标题,都是统一的,都应该使用style统一定义和管理。同样抽出来的还有dimen,对公共属性都应该进行统一管理,使用style和dimen进行管理。
适配过程中收获了很多,也发现了很多自身的问题,包括对公共属性不敏感不懂统一管理等,还需要继续完善。(未完待续)