px 與 dp, sp換算公式?

px 與 dp, sp換算公式?

PPI = Pixels per inch,每英寸上的像素數,即 "像素密度"

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (baseline)
  • ldpi: 0.75

drawable-ldpi、drawable-mdpi、drawable-hdpi 精度分別爲低、中(android默認)、高。
對應的圖片大小爲:36x36、48x48、72x72。

xxhdpi: 144*144
xhdpi:96*96
hdpi:72*72
mdpi:48*48
ldpi:36*36

 

dp是虛擬像素,在不同的像素密度的設備上會自動適配,比如:
在320x480分辨率,像素密度爲160,1dp=1px
在480x800分辨率,像素密度爲240,1dp=1.5px
計算公式:1dp*像素密度/160 = 實際像素數

drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:
(1)drawable-hdpi裏面存放高分辨率的圖片,如WVGA (480x800),FWVGA (480x854)

(2)drawable-mdpi裏面存放中等分辨率的圖片,如HVGA (320x480)

(3)drawable-ldpi裏面存放低分辨率的圖片,如QVGA (240x320)

(4)drawable-xhdpi (1280 X 720)

(5)drable-xxhdpi (1920 X 1080)

系統會根據機器的分辨率來分別到這幾個文件夾裏面去找對應的圖片。


 ppi的運算方式是:

PPI = √(長度像素數² + 寬度像素數²) / 屏幕對角線英寸數

dp:Density-independent pixels,以160PPI屏幕爲標準,則1dp=1px,

dp和px的換算公式 :
dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。

 

sp:Scale-independent pixels,它是安卓的字體單位,以160PPI屏幕爲標準,當字體大小爲 100%時, 1sp=1px。

sp 與 px 的換算公式:sp*ppi/160 = px

 

總結得出:

px = dp*ppi/160
dp = px / (ppi / 160)

px = sp*ppi/160
sp = px / (ppi / 160)

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