dpi和ppi换算_DPI、PPI、DP、PX 的详细计算方法及算法来源是什么?
1. dpi是dot per inch,每英寸多少點,ppi是 Pixel per inch,每英寸像素數(shù),針對顯示器的設(shè)計時,dpi=ppi。
ppi計算方法是長寬各自平方之和開方,除以對角線長度(單位英寸)。原理可以自己畫個矩形勾股定理算一算。
2. ppi表示顯示設(shè)備的點密度,dpi表示印刷品點密度。
3. dip或dp,是安卓開發(fā)用的單位,1dp表示在屏幕點密度為160ppi時1px長度。
因為安卓設(shè)備屏幕眾多不可能為每個屏幕單獨開發(fā),所以用公式 px=dp*(ppi/160)計算在不同屏幕上的像素數(shù)。
舉例:HVGA屏320*480,一般是3.5寸,計算點密度為√ (320^2 + 480^2) / 3.5 = 164,約等于160,1pd=1px
WVGA屏480*800,按3.8寸屏算,點密度 √ (480^2 + 800^2) / 3.8 = 245,約等于240,1dp=1.5px。
還有更高分辨率的屏幕就不一一列舉了,總之dp是為了方便適配不同屏幕的單位,在不同屏幕密度下,1dp的物理長度也相同。
---------------------------------------------------------------------------
2014-2-28修改,上面看不明白的可以從這里開始看
液晶屏顯示圖像,放大來看是一個個小點組成的,這些小點就是像素點(px)。
有的手機(jī)屏幕小像素點少,比如HTC G11的4寸480x800屏幕,還有的屏幕大像素點多,比如三星note2的5.5寸720x1280屏幕。
這個圖標(biāo)在不同的手機(jī)屏幕上顯示出來,就是上圖的效果。可以想象一下我們不同的手機(jī)打開同一個應(yīng)用,按鈕的尺寸相差很大。
圖片顯示大小是由什么決定的呢,屏幕尺寸?上圖第1和第2個屏都是4.3英寸。像素數(shù)?第2和第3個屏都是720x1280的像素。最后我們找到了點密度(density),也就是像素數(shù)和屏幕尺寸的比值。density是每單位長度容納的像素數(shù)量,一般用像素/英寸,也就是Pixel per inch(ppi)。
屏幕的尺寸是屏幕對角線的長度,計算對角線像素數(shù)量再除以屏幕尺寸就得到了ppi值。上面3個屏的點密度分別是217ppi,327ppi(經(jīng)評論提醒,應(yīng)該是342ppi),267ppi。
對比上圖可以知道,ppi越低圖片顯示的越大,ppi越高圖片顯示的越小。
要讓不同屏幕顯示圖片的大小相同,就需要對圖片進(jìn)行縮放,給高ppi屏提供更大的圖片。
高ppi屏幕需要更大的圖片才能得到同樣的顯示效果,反之亦然。ppi和圖片px的關(guān)系如下
px1/px2=ppi1/ppi2
選定一個ppi值作為基礎(chǔ)繪制圖片,用ppi的比值計算出圖片縮放比例就可以適配各種屏幕
px2=px1*(ppi2/ppi1)
安卓選定的這個基礎(chǔ)值就是160ppi
px2=px1*(ppi2/160)
我們已經(jīng)解決了圖片放大縮小的問題,還需要一個單位用來描述長度(因為px不固定,inch不方便)。安卓創(chuàng)造了一個新的單位dp,中文名設(shè)備獨立像素。并且規(guī)定在160ppi的屏幕上,1dp=1px。
設(shè)計師只需要針對160ppi的顯示屏設(shè)計并制圖,安卓會根據(jù)當(dāng)前手機(jī)屏幕的ppi值來放大縮小圖片,在不同的屏幕上得到相近的顯示效果。
------------------------------------------------------------
2014-2-12修改,補(bǔ)充部分關(guān)于SP單位的內(nèi)容
安卓設(shè)備的文字單位是sp,簡單理解和DP是相同的。
下面這段是從Android Design上抄的:
使用不同大小字體對比,可以創(chuàng)建有序的,易理解的布局。然而,在相同的用戶界面有太多
不同大小的字體,會很亂。Android 框架使用以下的大小:
對應(yīng)到App中:
上面這張知乎截圖(簡單處理過),紅字標(biāo)明了對應(yīng)的各種文字類型。
實際使用中沒有那么絕對。中文App,中號16SP文字過大,正文也常用小號14SP的。超小號12SP也不夠小,例如知乎就用了更小的字號。
PS設(shè)計時,針對對應(yīng)的標(biāo)準(zhǔn)(HDPI,XHDPI,XXHDPI),使用不同的px。
總結(jié)
以上是生活随笔為你收集整理的dpi和ppi换算_DPI、PPI、DP、PX 的详细计算方法及算法来源是什么?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。