一直以來對手機屏幕這塊雲裏霧裏的,以前以爲用dp就可以了可以滿足大部分條件,但是越開發越發現,每個知識點都是非常重要的,而且不是說你看懂了就好了,而要想爲什麼這樣,所以我決定將以前的知識稀鬆的知識one more time ,亡羊補牢,希望爲時不晚,就從屏幕適配開始吧!
參考文章:Android 屏幕適配:最全面的解決方案 謝謝作者給我以學習上的幫助,我寫的此篇文字基本上是此篇文章的背誦版,和分解版
基礎知識點
手機尺寸:
手機屏幕的對角線的物理長度,size=寬^2*高^2開根號
單位:英寸,一英寸=2.54cm
手機分辨率:一般表示爲手機屏幕寬度所佔像素x高度所在像素
單位:px(pixel)
例如:1080x1920,意思就是在手機寬度上有1080個像素點,高度上有1920個像素點。
屏幕像素密度:一英寸所佔的像素
單位:dpi(dors per ict)
計算公式:屏幕像素密度=寬^2*高^2開根號/手機尺寸
安卓手機對每類手機尺寸都有一個相應密度,例如:
密度類型 屏幕分辨率 屏幕像素密度
低密度 (ldpi) 240x320 120(dpi)
中密度 (hdpi) 320x480 160(dpi)
高密度 (mdpi ) 480x800 240(dpi)
超高密度 (xdpi) 720x1280 320(dpi)
超高高密度(xxdpi) 1080x1920 480(dpi)
密度無關像素:與物理尺寸無關的像素密度
單位:dip或dp(density independent pixel)
大致解釋:比如如果用px爲單位在尺寸爲320x480的屏幕分辨率上表示一半大小寬度的尺寸爲160px,而在480x800的尺寸表示一半大小寬度的尺寸爲240px,如果用dp作爲單位在兩個尺寸上表示一半大小寬度的尺寸都爲160dp
結論:1dp在不同分辨率所代表的像素是不同的,1dp=1px*density
重點:規定將尺寸爲320x480屏幕分辨率,屏幕像素密度爲160(dpi)作爲標準像素密度,1dp=1px
根據:公式1dp=1px*density可以求得各個分辨率下的1dp所表示的像素
密度類型 | 屏幕分辨率 | 屏幕像素密度 | 比例 | 密度無關像素 |
低密度(ldpi) | 240x320 | 120 | 3 | 1dp=0.75px |
中密度(hdpi) | 320x480 | 160 | 4 | 1dp=1px |
高密度(mdpi) | 480x800 | 240 | 6 | 1dp=1.5px |
超高密度(xdpi) | 720x1280 | 320 | 8 | 1dp=2px |
超高高密度(xxdpi) | 1080x1920 | 480 | 12 | 1dp=3px |
獨立比例像素:用於自適應不同分辨率下的字體大小
單位:sp(scale independent pixel)
一般用偶數來表示12sp,14sp,16sp,18sp等等儘量少用奇數表示因爲轉換後會丟失精度(具體怎麼轉換我還不太清楚)
基礎知識到這裏就結束了,此知識點將會繼續更新,下一篇重點筆記爲如何適配。