天天看點

螢幕适配基礎——了解:ppi、dpi、px、sp、dp

做android開發繞不開的幾個名詞:ppi、dpi、px、sp、dp。那麼它們的定義、差別和聯系都是什麼呢?這篇部落格系統的做一個概述和總結。

1、基本概念

  • px:pixel,像素,電子螢幕上組成一幅圖畫或照片的最基本單元
  • pt: point,點,印刷行業常用機關,等于1/72英寸
  • ppi: pixel per inch,每英寸像素數,該值越高,則螢幕越細膩
  • dpi: dot per inch,每英寸多少點,該值越高,則圖檔越細膩
  • dp: dip,Density-independent pixel, 是安卓開發用的長度機關,1dp表示在螢幕像素點密度為160ppi時1px長度
  • sp: scale-independent pixel,安卓開發用的字型大小機關。

從上面的介紹可以看出,px、pt是一種類型,分别用于螢幕和印刷,表示各自的最基本單元;ppi、dpi是一種類型,分别用于螢幕和印刷,表示各自的像素、點密度;而dp、px分别表示長度機關和字型大小,他們的共同點都是,随着螢幕大小和分辨率而改變。

2、互相關系

2.1 pt和px

1pt=(dpi/72)px

上面的公式的意義就是,1pt等于1/72英寸。

2.2 ppi和dpi

dpi最初用于衡量列印物上每英寸的點數密度。DPI值越小圖檔越不精細。當DPI的概念用在計算機螢幕上時,就應稱之為ppi。同理: PPI就是計算機螢幕上每英寸可以顯示的像素點的數量。是以,在電子螢幕顯示中提到的ppi和dpi是一樣的。是以:

1ppi=1dpi

2.3 計算ppi

ppi是指螢幕像素密度,計算方式如下:

ppi=螢幕對角線像素點數/螢幕對角線長度=( √ (螢幕橫向像素點^2 + 螢幕縱向像素點^2)/對角線長度)

舉例說明:若一款手機螢幕分辨率為720px*1280px,4.3英寸。則點密度為 √ (720^2 +1280^2) /4.3 = 342ppi。

2.4 px和dp

dp為安卓開發時的長度機關,根據不同的螢幕分辨率,與px有不同的對應關系。

dp的大小的定義為:

在160ppi時:1px=1dp

是以,如果ppi為240的時候:1dp=1.5px,依次類推,而px和dp的計算公式為:

1dp=(ppi/160)px

同時結合android資源檔案夾下,常見的幾個名詞:ldpi、mdpi、hdpi、xhdpi、xxhdpi,其對應關系如下:

密度 ldpi mdpi hdpi xhdpi xxhdpi
ppi 120 160 240 320 480
分辨率 240*320 320*480 480*800 720*1280 1080*1920
比例 0.75 1 1.5 2 3

同時由于ppi的值除了和像素總數有關,還與螢幕大小有關,是以計算的ppi不是嚴格的等于上表中的值,多數隻是取近似值

2.5 dp和sp

dp和sp類似,都會随着螢幕大小和分辨率變化而改變,不同的是,在android中,dp表示長度機關,sp表示字型大小,在多數情況下

1dp=1sp

但是在文字尺寸是“大”或“超大”時,1sp>1dp。

(Tip:在設計中,多數以xhdpi為模闆,此時1dp=2px)

不是悶騷的程式員算不上程式員。我的微信公衆号“那點鼻事”,在這裡周一到周五每天一篇文章,與技術無關,隻哈牛逼。

螢幕适配基礎——了解:ppi、dpi、px、sp、dp

轉載于:https://www.cnblogs.com/YaoJianXun/p/6491959.html