一.前言
因为android碎片化比较严重,想要实现布局界面图片尺寸在手机上完美显示,需要对手机屏幕进行适配,布局这边不做讲解,这个应该基本都会,简单来说,就是使用相对约束(控件相对于屏幕,控件相对于控件),以上都能达到效果,这里写一下,具体解决控件的大小适配问题。
二.方案
1.px适配方案,给不同的分辨率写出不同的尺寸大小;
使用方法:确定一个基准分辨率,然后以此分辨率对其他分辨率进行缩放,有兴趣的可以去鸿洋大神的博客看一下:鸿洋px适配方案
px适配确实可以解决大部分问题,但随着全面屏的出现,往往带有虚拟键盘,处理起来比较麻烦,而且不同的分辨率就要写一个分辨率尺寸也挺麻烦的,不过也有解决方案,获取虚拟键盘高度,然后减去分辨率,然后用用次分辨率也能达到效果。但相对而言,px这方案太过于具体化了,如果每种分辨率都写一个dimens,这无疑是很占空间的。看具体情况进行适配。
2.pd适配方案,对pd进行缩放
首先还是在valyes的dimens确定基准dp,一般是360dp,然后通过sw-xxxdp,对基准进行缩放。sw的意思是,最小宽度,android系统会根据屏幕的最小宽度,选择合适的文件下的dimens。不需要考虑虚拟键盘,同时dp相对于px适配所占的空间也更小一些。
3.等比例缩放
在android计算长度的时候,就对屏幕进行重新计算,使得屏幕跟设计图完全一模一样,具体的使用方法参考如下链接:终极解决方案
三.使用步骤(dp适配)
1.使用android studio的插件:ScreenMatch
下载的时候,建议用手机热点,这个比较快,自己网速下载的时候很慢
2.复制基准的dimens到自己的values中
复制之后记得修改名字。
3.右键项目,点击ScreenMatch,生成不同的dimens文件
4.具体使用的时候,在用的地方,写@dimen/dp_....
四.总结
1.以上就能差不多完成适配,如果对里面的东西需要修改,或者想了解更多的话,可以看如下链接:ScreenMatch使用守则
2.如有其他方案,欢迎提供,方便总结。
3.感谢链接作者的贡献
网友评论