屏幕適配的核心:其一殖属,就是適配的效率姐叁,即把設(shè)計(jì)圖轉(zhuǎn)化為App界面的過程是否高效,其二如何保證實(shí)現(xiàn)UI界面在不同尺寸和分辨率的手機(jī)中UI的一致性洗显。
背景知識:
dp的優(yōu)點(diǎn)外潜,相同dp的控件,能夠保證不同屏幕上的實(shí)際物理大小相同
缺點(diǎn):
1挠唆、由于屏幕尺寸不一樣处窥,對于同樣dp的控件,有的屏幕放不下玄组,有的屏幕有留白
2滔驾、為了便于統(tǒng)一適配谒麦,對于某個(gè)區(qū)間內(nèi)的dpi,系統(tǒng)會(huì)統(tǒng)一視為某個(gè)dpi來使用哆致,比如幾部相同分辨率不同尺寸的手機(jī)的ppi(屏幕中ppi值等于dpi)可能分別是是430,440,450,那么在Android系統(tǒng)中绕德,可能dpi會(huì)全部指定為480,這樣的話摊阀,dpi/160就會(huì)是一個(gè)相對固定的數(shù)值耻蛇,但這樣就會(huì)將實(shí)際顯示尺寸和清晰度有細(xì)微差別。
根據(jù)上述缺陷胞此,需要更優(yōu)秀的屏幕適配方案
1臣咖、使用寬高限定符,即窮舉市場上的手機(jī)寬高分辨率漱牵,如values-1920x1080夺蛇,優(yōu)點(diǎn)是精確,缺點(diǎn)也是如此酣胀,必須要精確匹配刁赦,否則只能用默認(rèn)的寬高dimens;
2灵临、使用最小寬度(或最小高度)限定符截型,如values-sw360dp,和前一方案原理一致儒溉,優(yōu)點(diǎn)是容錯(cuò)率較高宦焦,如果不能精確匹配,系統(tǒng)能往下尋找最接近的資源文件顿涣,
兩個(gè)方法的弊端都是會(huì)增大apk體積波闹,dimens文件的體積增大量一般不超過1m,如果算上不同分辨率的圖片資源就會(huì)增大較多
3涛碑、今日頭條屏幕適配方案精堕,如果設(shè)計(jì)稿是360dp寬度,動(dòng)態(tài)設(shè)置手機(jī)的destiny使其在不同設(shè)備上始終保持寬度px/destiny = 360dp蒲障,這樣就能保證不同屏幕上UI的一致性歹篓。
缺陷就是對老項(xiàng)目維護(hù)不友好,因?yàn)檫@樣會(huì)把整個(gè)布局尺寸都改動(dòng)揉阎,老項(xiàng)目可能是寫死dp或按照最小寬度區(qū)分values適配的庄撮,需要做較多改動(dòng)。
經(jīng)驗(yàn)小提示
- 限定寬度毙籽,高度用match-parent洞斯,或者采用滑動(dòng)方式
- 百分比布局、weight坑赡、ConstraintLayout都是可選工具
AndroidAutoSize 使用經(jīng)驗(yàn)
- jessyan是否會(huì)對三方庫頁面產(chǎn)生影響 會(huì)
- 三方庫的引用方式中本地引用是否和遠(yuǎn)程引用等效 是
- 驗(yàn)證引用jessyan時(shí)候項(xiàng)目會(huì)不會(huì)根據(jù)屏幕尺寸選擇不同的dimens 會(huì)
核心功能烙如,只要按照設(shè)計(jì)圖寫(設(shè)計(jì)圖以dp為單位)么抗,然后適配,設(shè)置好高度或?qū)挾鹊幕鶞?zhǔn)亚铁,就能適配大部分的屏幕(從基準(zhǔn)軸根據(jù)不同屏幕比例縮放蝇刀,最大程度接近設(shè)計(jì)稿效果),基本不需要多個(gè)dimens刀闷。
公司音樂模塊區(qū)分dimens的原因是hls和cat的設(shè)計(jì)稿都不一樣熊泵,兩個(gè)軟件的基準(zhǔn)值也不一樣,所以要區(qū)分甸昏。