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)

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

ppi的運算方式是:

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

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?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本文參考自: Google的官方權威適配文檔 郭霖:Android官方提供的支持不同屏幕大小的全部方法 Storm...
    M悇芐冋憶閱讀 12,977評論 5 56
  • 使用sketch最重要的一點是設計好控件的規范。 為做好設計規范需要對色彩進行編號,比如:color_a”_1,c...
    youyeath閱讀 26,298評論 2 237
  • 幾組概念 分辨率屏幕上物理像素的總數。添加對多種屏幕的支持時, 應用不會直接使用分辨率;而只應關注通用尺寸和密度組...
    acc8226閱讀 569評論 0 2
  • 剛開始做移動端web開發的同學應該都碰到過頁面適配問題,為什么我在開發手機上調試好的頁面在其他手機會有這樣或那樣的...
    留七七閱讀 19,508評論 5 80
  • 凌晨四點,火車即將到站。天還沒亮,有零星閃爍。清晨的雪地平整無痕,在路燈下泛著閃閃白光。 進站時火車很慢很慢,站臺...
    drqf閱讀 167評論 0 0