android 屏幕適配攻略

本文基于 鴻洋大神 在csdn上發(fā)布的 Android 屏幕適配方案這一博文,基于自己的學(xué)習(xí)理解,說說,記錄下(照抄不誤 -,-)

首先屏幕適配在實(shí)際android項(xiàng)目開發(fā)過程中是一個(gè)讓人蛋疼無比的難題,很多面試也會(huì)問到(ps:數(shù)月前,我在深圳找工作面的公司,十家有十二家會(huì)問到)
恩,先從概念性的東西開始說吧,在布局文件當(dāng)中,一般我們的做法是dp,但是,正如鴻洋大神所說,dp在物理設(shè)備的屏幕尺寸相差太大的情況下并沒有什么用,就好比你寫的1280x720在磚頭似的其他安卓機(jī)子上(例如:某族,某視等),這種情況對(duì)于我們開發(fā)者而言就很尷尬了,我們是希望一個(gè)程序無論在哪運(yùn)行,樣式ui都顯示一樣。
說下我以前的做法,編寫多套布局,每個(gè)分辨率下面一套layout,比如layout-480x800,layout-1280x720,1080x1080等。
看似很好解決,但是
你確定你寫這么多布局你不煩?
你確定設(shè)計(jì)師給你只標(biāo)注px你換算成dp不煩?
你確定產(chǎn)品經(jīng)理不會(huì)在原有功能上再要求加點(diǎn)什么控件什么的?

所以在被人擼了幾遍后,我果斷放棄了上述這種做法(寫也麻煩,改動(dòng)也麻煩)

百分比我認(rèn)為確實(shí)是適配的最優(yōu)方式,像web頁面(咨詢過前端人員),web在這么多分辨率的電腦,還要兼容各種屏幕的手機(jī)一樣完美展示,所以。。。
andorid中的百分比是match_parent和wrap_content 顯然的是所有空間都用這兩個(gè)屬性并不能匹配我們產(chǎn)品經(jīng)理天馬行空的產(chǎn)品需求

因此,針對(duì)ui常常給我們的圖是px標(biāo)注,百分比適配屏幕最優(yōu)的做法,使用這種方法比較好。


20150503174449732.jpg

建立多個(gè)values文件,也就是常說的dimens適配
首先我們需要設(shè)立基準(zhǔn),最好以u(píng)i給出的px標(biāo)注圖為基準(zhǔn),這里我取480x320的分辨率為基準(zhǔn)(鴻洋大神原話:將任何分辨率的寬度取320份,取值x1-x320,高度取480份,取值y1-y480)
那么我們?cè)趯挾葹?80的屏幕上,它的x1就是 480/基準(zhǔn)值(320) = 1.5px

設(shè)置好了以后,在控件中,我們?cè)O(shè)置寬高的時(shí)候 width = "@dimens/x120" height = "@dimens/x120"即可
(這樣達(dá)到的效果是,無論在什么分辨率的機(jī)子上,原控件在屏幕的百分比寬度,高度都是固定,從而實(shí)現(xiàn)適配屏幕)

編寫values文件也比較麻煩,因此鴻洋大神給出了一個(gè)工具,xxx.jar 點(diǎn)擊即可自動(dòng)生成480x320的values文件夾(下面鏈接)
https://github.com/hongyangAndroid/Android_Blog_Demos/tree/master/blogcodes/src/main/java/com/zhy/blogcodes/genvalues

默認(rèn)基準(zhǔn)為480*320,當(dāng)然對(duì)于特殊需求,通過命令行指定即可:
例如:基準(zhǔn) 1280 * 800 ,額外支持尺寸:1152 * 735;4500 * 3200;

按照
java -jar xx.jar width height width,height_width,height

上述格式即可。
到此,我們通過編寫一個(gè)工具,根據(jù)某基準(zhǔn)尺寸,生成所有需要適配分辨率的values文件,做到了編寫布局文件時(shí),可以參考屏幕的分辨率;在UI給出的設(shè)計(jì)圖,可以快速的按照其標(biāo)識(shí)的px單位進(jìn)行編寫布局?;窘鉀Q了適配的問題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容