Android屏幕適配

雪之祭司 8年前發布 | 10K 次閱讀 Android開發 移動開發

來自: http://my.oschina.net/reborn87/blog/610406


關于屏幕適配,建議大家先看看一下幾篇大神的文章,相信會對適配有一個很詳細的了解:

看完以上五篇之后,講講在我的項目中是如何進行屏幕適配的:

    其實我也是第一次做適配,也想使用最簡單的方式(AutoLayout),只可惜集成之后,不見效果,于是乎就只好求其次,使用第二篇文章講述的方式,該方式幾乎能匹配上市面上所有的手機,當然也會在個別手機上出現問題,譬如魅族以及底部含有虛擬按鍵的手機(主要是HTC)。

    其實出現問題的原因,在于沒有找到對應的value文件夾,于是就找了一個接近的(匹配規則可查看:Android屏幕適配-資源文件夾命名與匹配規則)湊合,具體找了哪一個,這個真不好說,于是采用笨方法:刪除后添加的所有value文件夾及文件(首先做好備份),只保留默認的value文件夾,然后將認為可能的value文件夾中的文件丟到默認文件夾中,生成新的安裝包查看效果。這樣測試要測試到猴年馬月,于是繼續Google,最后發現這些失真都是因為底部虛擬按鍵的原因,導致匹配value文件夾的時候不會找對應的value文件夾,譬如:1920x1080屏幕,按道理屏幕適配的是,會自動尋找values-1920x1080目錄,但實際上并非如此,那么針對這樣情況該如何處理,其實重新生成一份values文件夾即可,不過高度不能再是1920,得剪去底部虛擬按鍵的高度,重新生成的value文件為values-1620x1080,對于底部虛擬按鍵的高度,也沒詳細研究,我是這樣計算的1280->200,按照這樣比例計算,1920->300。

    被屏幕適配折磨幾天,最后總算搞定,一邊嘗試一邊摸索,也得感謝各位大佬無私分享自己的經驗,讓自己少走一些彎路。

ps:對于高度的設置,有人認為直接使用@dimen/x...就可以,但這樣在有底部導航欄的時候就會出現問題,該適配主要是高度引起變化,因此此時的寬高不在是正常屏幕的寬高了,所以建議設置高度的時候,還是寫成如下:

android:layout_height="@dimen/x450"(不建議使用)
android:layout_height="@dimen/y450" (建議使用)


對于如何生成values文件,相應的jar下載鏈接:https://github.com/hongyangAndroid/Android_Blog_Demos/tree/master/blogcodes/src/main/java/com/zhy/blogcodes/genvalues

運行指令:java java -jar autolayout.jar 1440 2560 1080,1920_768,1280 (紅色標記的是你的原型圖的寬高,也可稱作values文件的基準屏幕)

 本文由用戶 雪之祭司 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!