关于屏幕适配的一些理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010724819/article/details/77883141

做安卓开发一年多了,但是至今外网上线项目只有njBank的直销银行了,时常觉得技术无处可寻,没有新的技术就容易疲惫,已疲惫就迷茫,一迷茫就不知道干嘛。最近为了激励自己的学习热情,开始研究了一下屏幕适配的问题。

首先呢,个人觉得内网上线项目和外网上线没啥可比性,我来举几个例子:

1.内网上线项目一般功能比较单一(为了少部分人而特意定制的特定功能),所以具有特殊性,不具备普遍性

2.问题不容易被暴露出来:用户平台不同(X86,ARM,虽然Intel平台机器不多了,崩溃主要体现在地图类型的APP上,很多都是秒崩)

3.屏幕适配问题(本文重点,等下进行详细地介绍)

4.页面特性差距大,比如Design包中的大量联动特性,可能内网特定设备性能压根无法支撑起来就要OOM或者ANR了

5.思维的局限性,有人会说安卓不就是在玩json么?我只想说如果稍微深入安卓开发,你就会知道,安卓就是一个小的生态系统,我们的手机app甚至可以作为服务给自己用(培训班项目用到锅的技术,细节已经记不清楚了,哈哈),数据库也有,性能上可能有瓶颈,但是基本操作完全没问题,再加上前端各种特效,所以并不比后台要轻松。我想着可能就是为什么安卓能够独立出来作为一门技术性的岗位而存在的原因吧。

好了,废话少说,下面我就来说一些我自己的见解吧!

我把布局的分配分为两部曲(布局+字体)

1.关于页面布局适配问题:

扫描二维码关注公众号,回复: 5336872 查看本文章

布局适配其实从安卓诞生以来就是个大问题,期初我还记得摩托Defy,Htc One X,联想乐Phone,小米1等等各种分辨率的屏幕,但是近些年来,屏幕的分辨率趋于统一,目前1080p的居多,其次可能也就是一些720p的机器了。

当我第一次入职之时,貌似还是一个小萌新,带着期望进了一家大公司,薪资虽然比较低,但是学习到了很多东西,外网上线项目,积累了两年的业务,我的天,两年能跑下来的APP也是经过N多人的手了,控件布局使用的是weight布局,起先我还是不太理解,后期才知道。

如果一个线性布局中,放两个按钮,一般的操作是如图所示:

这样就会出现一个问题,就是在上线之后,可能屏幕大小并非咱们使用的测试机,那么左边的一块布局因为大小写死了的缘故,始终占领那么一块的大小。


解决方案:左右各分一半(如图所示)


大家懂了吧,直白的说这就是一种利用比例进行布局的方法,可以在任意分辨率的手机屏幕上均分左右两块区域。

其他的区域也可以利用这种方式以此类推,之前做的一个项目就是要适配720p和480p的屏幕,如果直接利用高度进行计算,问题实在是太多了,用比例布局便直接迎刃而解了。


2.字体适配:

字体适配使用的是Dimens适配方案,简单来说就是利用不同的手机分辨率,自动去寻找对应的字体大小,使之总是以最合适的大小展示在屏幕之上。

嗯,这里推荐一篇非常好的文章,文章的作者还提供了一个非常实用的批量生成工具,给作者点一个赞!

地址:字体Dimens适配方案

这两种方法,引用金庸老师《倚天屠龙记》的一段话就是:"武林至尊,宝刀(weight适配)屠龙,号令天下,莫敢不从,倚天(字体适配)不出,谁与争锋",哈哈,双剑合璧,更是威力无穷啊!

猜你喜欢

转载自blog.csdn.net/u010724819/article/details/77883141