做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)
不是悶騷的程式員算不上程式員。我的微信公衆号“那點鼻事”,在這裡周一到周五每天一篇文章,與技術無關,隻哈牛逼。
轉載于:https://www.cnblogs.com/YaoJianXun/p/6491959.html