Android 的屏幕尺寸多种多样,如 5 寸、5.5 寸、6 寸 等等,当然,屏幕分辨率也是多种多样,这很容易导致同一元素在不同手机上显示的效果不同的问题。本文章作为自己项目平时编写中的一些常用屏幕适配总结,方案1,3,4都用过,挺不错的。
方案一
通过dp加上自适应布局和weight比例布局可以基本解决不同手机上适配的问题,这基本是最原始的Android适配方案。此外,使用相对布局和约束布局我认为会更好的去展示ui。
方案二
极低成本的Android屏幕适配方式,使用displayMetrics只需几行代码来适配Ui设计图的宽度或者高度
Android 屏幕适配各种宽高比的手机_安卓适应宽屏-CSDN博客
方案三
宽高限定符适配
简单说,就是穷举市面上所有的Android手机的宽高像素值;
设定一个基准的分辨率,其他分辨率都根据这个基准分辨率来计算,在不同的尺寸文件夹内部,根据该尺寸编写对应的dimens文件。
比如以480x320为基准分辨率
-
宽度为320,将任何分辨率的宽度整分为320份,取值为x1-x320
-
高度为480,将任何分辨率的高度整分为480份,取值为y1-y480
那么对于800*480的分辨率的dimens文件来说,
- x1=(480/320)*1=1.5px
- x2=(480/320)*2=3px
tips:要精准命中对应分辨率,不然就会使用默认的分辨率。
使用的时候设定指定宽高,分辨率自适应取值。
方案四
smallestWidth适配(重点推荐,相对于方案三他可以自适应宽度)
smallestWidth适配,或者叫sw限定符适配。指的是Android会识别屏幕可用高度和宽度的最小尺寸的dp值(其实就是手机的宽度值),然后根据识别到的结果去资源文件中寻找对应限定符的文件夹下的资源文件。
Android 屏幕适配方案_android 适配-CSDN博客
Android屏幕适配(smallestWidth限定符适配)_android 怎么查看最小宽度限定符-CSDN博客