本文基于 鴻洋大神 在csdn上發(fā)布的 Android 屏幕適配方案這一博文,基于自己的學習理解,說說,記錄下(照抄不誤 -,-)
首先屏幕適配在實際android項目開發(fā)過程中是一個讓人蛋疼無比的難題,很多面試也會問到(ps:數(shù)月前,我在深圳找工作面的公司,十家有十二家會問到)
恩,先從概念性的東西開始說吧,在布局文件當中,一般我們的做法是dp,但是,正如鴻洋大神所說,dp在物理設備的屏幕尺寸相差太大的情況下并沒有什么用,就好比你寫的1280x720在磚頭似的其他安卓機子上(例如:某族,某視等),這種情況對于我們開發(fā)者而言就很尷尬了,我們是希望一個程序無論在哪運行,樣式ui都顯示一樣。
說下我以前的做法,編寫多套布局,每個分辨率下面一套layout,比如layout-480x800,layout-1280x720,1080x1080等。
看似很好解決,但是
你確定你寫這么多布局你不煩?
你確定設計師給你只標注px你換算成dp不煩?
你確定產(chǎn)品經(jīng)理不會在原有功能上再要求加點什么控件什么的?
所以在被人擼了幾遍后,我果斷放棄了上述這種做法(寫也麻煩,改動也麻煩)
百分比我認為確實是適配的最優(yōu)方式,像web頁面(咨詢過前端人員),web在這么多分辨率的電腦,還要兼容各種屏幕的手機一樣完美展示,所以。。。
andorid中的百分比是match_parent和wrap_content 顯然的是所有空間都用這兩個屬性并不能匹配我們產(chǎn)品經(jīng)理天馬行空的產(chǎn)品需求
因此,針對ui常常給我們的圖是px標注,百分比適配屏幕最優(yōu)的做法,使用這種方法比較好。

建立多個values文件,也就是常說的dimens適配
首先我們需要設立基準,最好以ui給出的px標注圖為基準,這里我取480x320的分辨率為基準(鴻洋大神原話:將任何分辨率的寬度取320份,取值x1-x320,高度取480份,取值y1-y480)
那么我們在寬度為480的屏幕上,它的x1就是 480/基準值(320) = 1.5px
設置好了以后,在控件中,我們設置寬高的時候 width = "@dimens/x120" height = "@dimens/x120"即可
(這樣達到的效果是,無論在什么分辨率的機子上,原控件在屏幕的百分比寬度,高度都是固定,從而實現(xiàn)適配屏幕)
編寫values文件也比較麻煩,因此鴻洋大神給出了一個工具,xxx.jar 點擊即可自動生成480x320的values文件夾(下面鏈接)
https://github.com/hongyangAndroid/Android_Blog_Demos/tree/master/blogcodes/src/main/java/com/zhy/blogcodes/genvalues
默認基準為480*320,當然對于特殊需求,通過命令行指定即可:
例如:基準 1280 * 800 ,額外支持尺寸:1152 * 735;4500 * 3200;
按照
java -jar xx.jar width height width,height_width,height
上述格式即可。
到此,我們通過編寫一個工具,根據(jù)某基準尺寸,生成所有需要適配分辨率的values文件,做到了編寫布局文件時,可以參考屏幕的分辨率;在UI給出的設計圖,可以快速的按照其標識的px單位進行編寫布局?;窘鉀Q了適配的問題。