Android屏幕适配的总结

2020-02-04  本文已影响0人  LeoFranz

屏幕适配的核心:其一,就是适配的效率,即把设计图转化为App界面的过程是否高效,其二如何保证实现UI界面在不同尺寸和分辨率的手机中UI的一致性。

背景知识:

dp的优点,相同dp的控件,能够保证不同屏幕上的实际物理大小相同
缺点:
1、由于屏幕尺寸不一样,对于同样dp的控件,有的屏幕放不下,有的屏幕有留白
2、为了便于统一适配,对于某个区间内的dpi,系统会统一视为某个dpi来使用,比如几部相同分辨率不同尺寸的手机的ppi(屏幕中ppi值等于dpi)可能分别是是430,440,450,那么在Android系统中,可能dpi会全部指定为480,这样的话,dpi/160就会是一个相对固定的数值,但这样就会将实际显示尺寸和清晰度有细微差别。

根据上述缺陷,需要更优秀的屏幕适配方案
1、使用宽高限定符,即穷举市场上的手机宽高分辨率,如values-1920x1080,优点是精确,缺点也是如此,必须要精确匹配,否则只能用默认的宽高dimens;
2、使用最小宽度(或最小高度)限定符,如values-sw360dp,和前一方案原理一致,优点是容错率较高,如果不能精确匹配,系统能往下寻找最接近的资源文件,
两个方法的弊端都是会增大apk体积,dimens文件的体积增大量一般不超过1m,如果算上不同分辨率的图片资源就会增大较多
3、今日头条屏幕适配方案,如果设计稿是360dp宽度,动态设置手机的destiny使其在不同设备上始终保持宽度px/destiny = 360dp,这样就能保证不同屏幕上UI的一致性。
缺陷就是对老项目维护不友好,因为这样会把整个布局尺寸都改动,老项目可能是写死dp或按照最小宽度区分values适配的,需要做较多改动。

经验小提示

AndroidAutoSize 使用经验

具体方案参考

Android 目前稳定高效的UI适配方案

今日头条屏幕适配方案

上一篇下一篇

猜你喜欢

热点阅读