標籤:
/** * crazyandcoder * 聯絡: * QQ : 275137657 * email: [email protected] * 轉載請註明出處! */
android 螢幕解析度總結
接觸androidUI設計總是會碰到一些概念如:dpi、ppi、sp、dp等,這些都是什麼意思呢?以及我們在使用這些時需要注意些什嗎?接下來我們就來做個總結,方便以後使用。
一、基本概念
像素 pixels,螢幕中實際的像素點單位,如50px、100px等。當我們放大一張圖片時會發現圖片是由一個個小方 塊組成的,這每一個方塊就是一個像素點。
裝置獨立像素 (device independent pixels)
我們經常聽到320*480、1920*1080等尺寸,這就是指的解析度,就是說螢幕中款和高各有多少個像素。
螢幕像素密度(dot per inch),列印解析度,即每英寸能列印得點數,即列印精度。
映像解析度(pixels per inch),在映像中,每英寸所包含得像素數目。dpi主要用於輸出,重點是列印裝置 上,ppi對於設計師應該比較熟悉,photoshop畫布得解析度通常設定為72像素/英寸,這個單位其實就是ppi, 儘管概念不同,但對於行動裝置得顯示屏來說,可以看作ppi=dpi。 運算方式:PPI=√(長度像素2+寬度像素2)/ 螢幕對角線英寸數。即:長、寬各自平方和得開方,再除以對 角線得英寸數。 對於iPhone5來說:其ppi=√(1136px2 + 640px2)/4 in=326ppi(視網膜Retina屏) 對於android手機來說:一個不確切的分法是,720 x 1280 的手機很可能接近 320 dpi (xhdpi模式),480 x 800 的手機很可能接近 240 dpi (hdpi模式),而320 x 480 的手機則很接近 160 dpi(mdpi模式)。
放大像素,scaled pixels,主要用字型顯示。
二、換算關係
android開發中,文字大小的單位是sp,其他非文字的尺寸單位是dp,但是我們在設計時用的單位一般都是像素px,這些單位是如何進行換算的,對於android開發、設計人員是有必要瞭解的。 px=dp*ppi/160 px=sp*ppi/160 1)dp:Density - indenpendent pixels ,以160PPI螢幕為標準,則1dp=1px。對於320PPI螢幕,則 1dp*320ppi/160=2px; 2)sp:Scale - independent pixels,它是android的字型單位,以160PPI螢幕為標準,若字型大小為100%時, 1sp=1px,對於320PPI的螢幕,1sp*320ppi/160=2px。 簡單的說,px是UI設計師在ps中使用的單位,同時也是手機螢幕上所顯示的,dp是開發卸載layout的時候使用的尺寸單位。
為什麼要用sp、dp替代px呢?因為他們不會隨著PPI的變化而變化,在相同物理尺寸和不同ppi下,他們呈現的高度大小都是相同的,也就是更接近物理呈現,而px不行。
當運行在mdpi模式下時,1dp=1px。也就是說:如果設計師在ps設計圖中標註的item高度為48px,那麼我們在 layout中定義的item高度就是48dp。 當運行在hdpi模式下時,1dp=1.5px。也就是說:如果設計師在ps設計圖中標註的item高度為72px,那麼我們在 layout中定義的item高度就是48dp。
當運行在xhdpi模式下時,1dp=2px。也就是說:如果設計師在ps設計圖中標註的item高度為96px,那麼我們在 layout中定義的item高度就是48dp。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
android 螢幕解析度總結