px 與 dp, sp換算公式?

2021-07-11 04:33:44 字數 1310 閱讀 8757

隨筆 - 449  

文章 - 3  

ppi = pixels per inch,每英吋上的畫素數,即 "畫素密度"

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)

系統會根據機器的解析度來分別到這幾個資料夾裡面去找對應的。

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)

dp = sp? 

參考:[無線手冊-4] dp、sp、px傻傻分不清楚[完整] 

supporting different screens | android developers

iconography | android developers

devices and displays | android developers

px 與 dp, sp換算公式?

px 與 dp,sp換算公式?ppi pixels per inch,每英吋上的畫素數,即 畫素密度 drawable ldpi drawable mdpi drawable hdpi 精度分別為低 中 android預設 高。對應的大小為 36x36 48x48 72x72。xxhdpi 144 ...

px 與 dp, sp換算公式

ppi pixels per inch,每英吋上的畫素數,即 畫素密度 drawable ldpi drawable mdpi drawable hdpi 精度分別為低 中 android預設 高。對應的大小為 36x36 48x48 72x72。xxhdpi 144 144 xhdpi 96 96...

px 與 dp, sp換算公式

參照px 與 dp,sp換算公式?petercao ppi的運算方式是 ppi 長度畫素數 寬度畫素數 螢幕對角線英吋數 dp density independent pixels,以160ppi螢幕為標準,則1dp 1px,dp和px的換算公式 dp ppi 160 px。比如1dp x 320p...