1. 程式人生 > >一種利用百分比佈局適配所有android手機螢幕解析度的方法

一種利用百分比佈局適配所有android手機螢幕解析度的方法

場景

1、團隊裡面,UI設計師往往只提供以一個標準解析度來設計的UI設計稿,用於Android、iOS、H5三端。

2、Android手機解析度眾多,如何讓UI在不同解析度的手機上面能有相同的效果?

解決方案

在網上看到有一種解決方案是按照螢幕解析度根據基準解析度來等比縮放,經過實際專案中使用後,效果不錯,
因此來跟大家分享一下這個方案,以及使用過程中需要注意的問題。
1、

這是UI設計師以iPhone6的解析度為基準給出的設計稿:


2、

我們在程式碼裡面將寬、高值設定:


注意:為什麼是1294畫素而不是1334畫素?因為UI設計稿是將iPhone狀態列的高度也算進去了,

我們可以看下iPhone各個解析度對應的狀態列的高度值:


3、

在eclise裡面或者用cmd命令,去執行java程式碼,這樣可以生成一堆不同解析度的資料夾,


4、

將這些生產的資料夾拷貝到android studio工程下面的res目錄下,系統即可自動識別找到對應解析度的資料夾。

5、

如果想新增新的解析度,只需要新增新的解析度值即可,然後重新生成一次,再講新生成的資料夾拷貝到專案中。


6、

使用的時候,一律使用@dimen/+x方向或y方向的數值,比如android:layout_width="@dimen/x128",android:layout_height="@dimen/y128",

這個128值,就是UI設計師在設計稿上標註的值!

總結

優點

1、UI設計人員只需要根據一個解析度出一套UI設計稿,即可供Android、iOS、H5三端開發人員使用;UI設計人員在設計稿上統一使用PX畫素為單位進行標註。2、有新的解析度需要適配時,只需要生成對應解析度的資料夾即可,一般來說,裝置的解析度不會經常更新;3、如果裝置沒有找到對應的解析度的資料夾,系統會分配一個最接近的資料夾給到裝置使用;

缺點

和字型的搭配使用:在實際開發過程中往往會遇到一個問題就是,字型大小怎麼設定?一般來說我們字型的單位是sp,使用sp的原因主要就是能夠配合系統設定裡面調節系統字型大小,如果我們限制了ViewGroup的高度,而系統字型調大了,會導致什麼樣的結果?很可能就是字是變大了,但是有部分顯示不出來了。後續我會另外寫一篇文章專門介紹怎麼解決這樣的問題。

多解析度適配檔案下載:http://download.csdn.net/download/ddnosh/10182124