美文网首页适配
Android 屏幕适配方案详解

Android 屏幕适配方案详解

作者: 佼佼者Mr | 来源:发表于2019-05-23 15:30 被阅读58次


前言:

之前屏幕适配这个问题一直困扰着我。

1.为什么要进行适配,当然这个问题有些白痴,对于开发者而言肯定是遇到了此类问题才会寻求答案。

2.现在应用比较广泛的适配方案有哪些。

3.哪一种是最好的。我要用最高效,最安全,最简便的方案。

1.为什么要进行适配

 我们不仅要会适配,其实更应该清楚为什么适配,那么多适配方案该怎么选?当然就要搞清楚这个问题。

分辨率碎片化

什么是分辨率?就是讲解分辨率之前,我们要明白一个概念。在我们手机上呈现的一条线,一个面,一张图像都是由最小的单位像素(px)来表示的.。假如分辨率1920*1080 就代表竖向1920个像素,横向1080个像素。至于Android究竟有多少种分辨率的屏幕,我不知道,只知道有很多种。

尺寸碎片化

屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米,

比如常见的屏幕尺寸有4.2、4.7、5.0、5.2、5.5、6.0等。

dpi

上图已经说明dpi了,就是单位尺寸内的像素数量dpi=px/inch(尺寸),dpi数量越大说明单位内像素密度越大,显示越细腻。

dp

dp=dpi/160。为什么要除以160?我也不知道。从dpi的计算公式上可以看出dp能够根据不同屏幕(分辨率/尺寸也就是dpi)获得不同的像素(px)数量。这是Android最原始的适配方案。

Density

这个是指屏幕上每平方英寸(2.54 ^ 2 平方厘米)中含有的像素点数量。

这些概念我大概梳理了一下,如果不清楚,请仔细再查阅相关文档

看完上面概念就会有疑问?如果我用px直接展示边距或者控件大小,分辨率不同的屏幕,分辨率越高的话我的实际大小就会变小,那我用dp就好了。是的,dp就是最原始的适配方案,但是如果两块屏幕尺寸一样,分辨率差一倍呢?density就会差一倍,这样即使你使用了dp作为单位,view的大小在不同手机中还是会有尺寸的变化。

2.都有哪些适配方案呢

1.宽度限定符适配

2.鸿洋大神的AndroidAutoLayout

3.百分比

4.今日头条屏幕适配方案

5.smallestWidth适配

第一种呢就是穷举市面上所有的手机分辨率设定一个基准利率,其他分辨率都根据这个基准分辨率来计算,在不同的尺寸文件夹内部,根据该尺寸编写对应的dimens文件。

这个方案呢,容错率比较差,你必须找到所有的分辨率的手机,造成apk的体积庞大。

鸿洋大神的AndroidAutoLayout其实就是百分比,至于为什么要分开说呢?因为这个库已经不维护了,如果你要自己搭一个这样的库也是一个思路。

第4种方案它是通过修改density值来实现。公式是当前设备屏幕总宽度(单位为像素)/ 设计图总宽度(单位为 dp) = density。特点呢就是开发快,稳定性有所欠缺。

第五种方案。这种机制和上文提到的宽高限定符适配原理上是一样的,都是系统通过特定的规则来选择对应的文件。可以看作是升级版,升级的地方就是减小了导入文件的数量,从而减小了apk的体积,而且利用dp来适配,容错率更高。相比于第四种也更加稳定。

还有其他方案就不一一列举了,没有最好的方案,只有最合适。至于更详细的原理和使用,已经附上链接,点击即可查看。实在是不想码字了。见谅。

相关文章

网友评论

    本文标题:Android 屏幕适配方案详解

    本文链接:https://www.haomeiwen.com/subject/yoxjzqtx.html