1. 程式人生 > >螢幕適配基礎(為什麼要做螢幕適配?)

螢幕適配基礎(為什麼要做螢幕適配?)

螢幕適配基礎(為什麼要做螢幕適配?)

螢幕引數

螢幕大小

螢幕的對角線的長度,通常使用 "英寸"來度量,比如5.5英寸手機,5英寸的手機

解析度

解析度是指手機螢幕的畫素點個數,比如1080*1920,是指寬宥1080個畫素點,高有1920個畫素點

DPI(Dots Per Inch)

每英寸畫素數,也可以叫做PPI(Pixels Per Inch),可以理解為螢幕的畫素密度,它是由螢幕對角線的畫素點數除以對角線的的長度(螢幕大小得到)
通常一部手機解析度是寬 * 高 ,螢幕大小以對角線長度英寸來計;
比如1080*1920解析度,尺寸是5.5英寸的手機的dpi如下;5.5英寸的長度上面有大約2203px個畫素點,所以dpi就是2203/5.5
比如下圖所示:
在這裡插入圖片描述

在這裡插入圖片描述

手機螢幕密度,因為不同手機解析度不同,尺寸不同,導致手機螢幕的密度值(dpi)有各種各樣的,Anroid要做到每一種螢幕的dpi的值,基本上是不可節能,如果真要那樣的話,那麼我們一張圖片可能要有幾百個dpi適配,也就不是目前幾個mipmap-hdpi,mipmap-mdpi,mipmap-xhdpi,mipmap-xxhdpi,mipmap-xxxhdpi檔案專門放置幾種特定dpi的圖片資料夾,要做到精確,必須要有幾百,甚至還多,Android碎片化很嚴重的,這個問題解決起來是不現實的。
下面列出android中定義的幾種標準的dpi值

螢幕密度dpi ldpi mdpi hdpi xdpi xxdpi xxxdpi
螢幕密度dpi值 120 160 240 320 480 640
每種螢幕密度下常規解析度 240*320 320*480 480*800 720*1280 1080*1920 2160*3840
dp和px的換算 1dp=0.75px 1dp=1px 1dp=1.5px 1dp=2px 1dp=3px 1dp=4px

為什麼要做適配?

原因很簡單,就是同樣的dp在不同手機上面顯示的效果根本不一樣,為什麼這麼說?
比如, 拿160 dp 來說:
在解析度 320 * 480,dpi =160 ; 160dp = 160 * (160/160) * 1px =160px; 佔螢幕比率 160/320 =0.5;
在解析度 480 * 800,dpi=240 ; 160dp = 160 * (240/160) * 1px=240px; 佔螢幕比率 240/480 =0.5
在解析度 720 * 1280,dpi =320 ; 160dp = 160 * (320/160) * 1px =320px; 佔螢幕比率 320/720 =0.44;
在解析度 1080 * 1920,dpi=480 ; 160dp = 160 * (480/160) * 1px=480px; 佔螢幕比率 480/1080 =0.44
在解析度 2160 * 3480,dpi =640 ; 160dp = 160 * (640/160) * 1px =640px; 佔螢幕比率 640/2160 =0.29;
從上面幾種標準的dpi來看,同樣的dp,在不同手機的顯示上面還是會有差別,同樣的設計有的佔一半,有的顯得很小,這樣對使用者來說很突兀,
更別說那些五花八門的手機尺寸和 dpi了.