2013-01-16 87 views
-2

按照android doc的說法:「將dp單位轉換爲屏幕像素很簡單:px = dp * (dpi/160)。例如,在240 dpi屏幕上,1 dp等於1.5個物理像素。Android px VS dp

我對這個例子有點困惑。根據公式,px=(240/160)dp => px = 1.5dp 它怎麼會變成「在240 dpi的屏幕上,1dp等於1.5個物理像素。」?它應該說1 px等於1.5 dp。請讓我清楚。

+1

[這裏是] [1]你正在尋找的答案。希望這會幫助你。 [1]:http://stackoverflow.com/questions/2025282/difference-of-px-dp-dip-and-sp-in-android – amDroid

+0

我已經通過您所提供的網址了,仍不清楚。 –

回答

2

密度越高,物理像素越小。因此,爲了保持dp的度量大小保持不變,1dp以更高的密度請求更多的物理像素,因爲它們更小。

dp的官方標準化爲1dp = 1px,密度爲160dpi;因此,在240dpi的密度下(這比50%大),爲了保持用dp表示的度量保持相同的長度,您需要多出50%的物理像素。

1

Android爲不同屏幕密度的設備定義密度比。對於mdpi設備,此比率設置爲1.因此,如果將寬度指定爲1dp,則android會通過將dp值與密度比相乘來計算像素值,即對於mdpi設備,px = 1(dp)* 1(ratio)= 1px 。

但是在像xhdpi設備這樣的高密度設備上,比例爲2,並且android會通過將dp值與密度比值相乘來將dp轉換爲像素。 px = 1(dp)* 2(比率)= 2px。 因此,您在xhpi設備上的元素將爲2px。

更多信息可以在這裏找到:http://www.jtechniques.com/android/android-basics/understanding-dp-in-android-ui-px-vs-dp