android中的畫素單位dp px pt sp

2021-07-13 03:58:51 字數 1842 閱讀 3984

看到有很多網友不太理解dp、sp和px的區別:現在這裡介紹一下dp和sp。dp也就是dip。這個和sp基本類似。如果設定表示長度、高度等屬性時可以使用dp 或sp。但如果設定字型,需要使用sp。dp是與密度無關,sp除了與密度無關外,還與scale無關。如果螢幕密度為160,這時dp和sp和px是一樣的。1dp=1sp=1px,但如果使用px作單位,如果螢幕大小不變(假設還是3.2寸),而螢幕密度變成了320。那麼原來textview的寬度設成160px,在密度為320的3.2寸螢幕裡看要比在密度為160的3.2寸螢幕上看短了一半。但如果設定成160dp或160sp的話。系統會自動將width屬性值設定成320px的。也就是160 * 320 / 160。其中320 / 160可稱為密度比例因子。也就是說,如果使用dp和sp,系統會根據螢幕密度的變化自動進行轉換。 

下面看一下其他單位的含義 

px:表示螢幕實際的象素。例如,320*480的螢幕在橫向有320個象素,在縱向有480個象素。 

in:表示英吋,是螢幕的物理尺寸。每英吋等於2.54厘公尺。例如,形容手機螢幕大小,經常說,3.2(英)寸、3.5(英)寸、4(英)寸就是指這個單位。這些尺寸是螢幕的對角線長度。如果手機的螢幕是3.2英吋,表示手機的螢幕(可視區域)對角線長度是3.2*2.54 = 8.128厘公尺。讀者可以去量一量自己的手機螢幕,看和實際的尺寸是否一致。 

mm:表示公釐,是螢幕的物理尺寸。 

pt:表示乙個點,是螢幕的物理尺寸。大小為1英吋的1/72。

px(pixels ,畫素):對應螢幕上的實際畫素點。例如,320*480的螢幕在橫向有320個象素,在縱向有480個象素。 

in(inches ,英吋):螢幕物理長度單位。每英吋等於2.54厘公尺。例如,形容手機螢幕大小,經常說,3.2(英)寸、3.5(英)寸、4(英)寸就是指這個單位。這些尺寸是螢幕的對角線長度。如果手機的螢幕是3.2英吋,表示手機的螢幕(可視區域)對角線長度是3.2*2.54 = 8.128厘公尺。讀者可以去量一量自己的手機螢幕,看和實際的尺寸是否一致。 

mm(millimeters ,公釐):螢幕物理長度單位。 

pt(points ,磅):螢幕物理長度單位, 表示乙個點,是螢幕的物理尺寸。大小為1英吋的1/72。 

dp(與密度無關的畫素):邏輯長度單位,在 160 dpi 螢幕上,1dp=1px=1/160英吋。隨著密度變化,對應的畫素數量也變化,但並沒有直接的變化比例。 

dip:與dp相同,多用於google示例中。 

sp(與密度和字型縮放度無關的畫素):與dp類似,但是可以根據使用者的字型大小首選項進行縮放。 

盡量使用dp作為空間大小單位,sp作為和文字相關大小單位

下面介紹一下幾種不同單位的轉換:

public static int dip2px(context context, float dipvalue) 

public static int px2dip(context context, float pxvalue)

最後說說下如何獲取解析度:

getwindowmanager().getdefaultdisplay().getmetrics(metric);

int width = metric.widthpixels; // 螢幕寬度(畫素)

int height = metric.heightpixels; // 螢幕高度(畫素)

float density = metric.density; // 螢幕密度(0.75 / 1.0 / 1.5)

int densitydpi = metric.densitydpi; // 螢幕密度dpi(120 / 160 / 240)

Android中的畫素單位px dp sp的區別

使用規律,務必牢記 文字的尺寸一律用sp單位,非文字的尺寸一律使用dp單位,才用px。首先,我們先弄明白px這個單位的含義,因為px是dp sp的基礎,其實dp sp是為了解決螢幕適配的問題,在px單位基礎之上進行計算所得到的單位。px其實就是計算機語言中的畫素,我們知道一張精美的是由許許多多的畫素...

Word中單位畫素的轉化

該方法用於將度量單位由厘公尺轉換為磅 1 厘公尺 28.35 磅 返回 single 型別。functioncentimeterstopoints centimeters as single as single 引數說明 centimeters single 型別,必需。指需要轉換為磅的厘公尺數。返...

Word中單位畫素的轉化

該方法用於將度量單位由厘公尺轉換為磅 1 厘公尺 28.35 磅 返回 single 型別。functioncentimeterstopoints centimeters as single as single 引數說明 centimeters single 型別,必需。指需要轉換為磅的厘公尺數。返...