Android全面的屏幕適配方案解析(一)__屏幕適配概念梳理

自Android系統發佈以來,似乎一直繞不開屏幕適配這個話題。毫無疑問,Android系統能發展到今天,離不開其開放性,而隨着國內手機廠商的崛起,任何用戶、開發者、OEM廠商、運營商都可以對Android進行定製,於是導致長期以來一直詬病的碎片化嚴重的問題。

Android全面的屏幕適配方案解析(一)__屏幕適配概念梳理
Android全面的屏幕適配方案解析(二)__寬高限定符屏幕適配
Android全面的屏幕適配方案解析(三)__sw限定符適配方案
Android全面的屏幕適配方案解析(四)__今日頭條適配方案

例如:

Android系統碎片化,比如基於Google原生系統定製:小米的MIUI系統、魅族的Flyme系統等等。

Android屏幕尺寸碎片化,比如5寸、5.99寸、6寸等等。

Android屏幕分辨率碎片化,比如320x480、480x800、720x1280、1080x1920等等。

而當Android系統、屏幕尺寸、屏幕密度出現碎片化的時候,就很容易出現同一元素在不同手機上顯示不同的問題,爲了保證某一元素在Android不同尺寸、不同分辨率的手機上具備相同的顯示效果,這個時候就需要對屏幕進行適配啦。

屏幕適配相關概念:

屏幕尺寸

屏幕尺寸指屏幕的對角線的物理長度,單位是英寸,1英寸=2.54釐米。

比如常見的屏幕尺寸:5.0、5.99、6.0等等

屏幕分辨率

屏幕分辨率是指手機在橫向、縱向上的像素點數總和,單位是px,1px=1個像素點,一般以縱向像素*橫向像素。

比如分辨率2160x1080的手機,表示高度上有2160個像素點,而寬度上有1080個像素點,屏幕分辨率爲:2160*1080。

Android手機比較常見的分辨率爲:320x480、480x800、720x1280、1080x1920。

屏幕像素密度

屏幕像素密度是指每英寸上的像素點數,單位是dpi,即“dot per inch”的縮寫。

比如設備內每英寸有320個像素,那麼該設備的屏幕像素密度=320dpi。

屏幕尺寸、分辨率、像素密度三者關係

屏幕像素密度與屏幕尺寸和屏幕分辨率有關,在單一變化條件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。

手機的屏幕分辨率是寬x高,屏幕大小是以寸爲單位,那麼三者的關係是:


這裏舉個例子:假如手機的屏幕分辨率是2160x1080,屏幕大小是5.99英寸,對於一部手機來說這些都是已知的,求這手機的像素密度是多少?

即該手機每英寸有403個像素。

px

px即像素,是屏幕上顯示數據的最基本的點,上面介紹屏幕分辨率的單位就是px,包括UI設計圖、Android原生API都會以px作爲統一的計量單位。

dpi

dpi即屏幕像素密度,每英寸上的像素點數,計算方式上面已經介紹過了,這裏就不重複啦。

dp、dip

dp應該比較熟悉,我們設置固定數值的時候都是以dp爲單位,而dp和dip是一個意思,都是Density Independent Pixels的縮寫,即密度無關像素,與終端上的實際物理像素點無關,可以保證在不同屏幕像素密度的設備上顯示相同的效果。

舉個例子:比如我們想設置一張圖片的寬度爲屏幕的一半,那麼:

  • 如果以像素px爲單位,那麼我們需要在320x480分辨率的手機上設置寬度爲160px,而在480x800分辨率的手機上設置寬度爲240px,兩者的設置寬度就不一樣了。
  • 而如果以dp爲單位,在這兩種分辨率下,設置寬度爲160dp都顯示爲屏幕的一半。

sp

sp即scale-independent pixels,與dp類似,通常用於指定字體的大小,當用戶修改手機顯示的字體時,字體大小會隨之改變。

dp與px的轉換

通常UI設計師給的設計圖是以px爲單位的,Android開發則是使用dp作爲單位的,那麼我們需要進行轉換,換算關係爲:

px = dp * (dpi / 160)

在Android中,規定以160dpi(即屏幕分辨率爲320x480)爲基準:1dp=1px

以上的概念梳理一遍過後,下面就要開始講解適配方案啦,由於篇幅過長,就分開幾篇更新,敬請期待。歡迎關注公衆號【龍旋】能獲取最新更新內容哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章