2010-08-20 24 views
15

我正在研究基於Galaxy S的應用程序。我知道Galaxy S的寬度是480像素,高度是800像素,但在DP中有多少?如何判斷「DP」中的屏幕分辨率?

可以說,如果我想有兩個佈局並排,我會讓他們設置爲240像素。但是,我怎麼知道我應該在DP單元中使用什麼值?

回答

14
將dip單位轉換爲屏幕像素很簡單:pixels = dips *(density/160)。例如,在240 dpi的屏幕上,1次下降等於1.5個物理像素。強烈建議使用dip單位來定義應用程序的UI,以確保在不同屏幕上正確顯示您的UI。

發現:http://developer.android.com/guide/practices/screens_support.html

[編輯] 我不得不用這個。使用DisplayMetrics.density只返回0.75,1和1.5。使用DisplayMetrics.densityDpi代替或更改數學爲pixels = dips * DisplayMetrics.density

+0

我是怎麼錯過的!非常感謝 :) – RobGThai 2010-08-21 16:24:19

0

我發現,DP是根本不是分辨率,它是關於屏幕大小,因爲它是基於160dpi基準。一個簡單的方法來計算將是:ScreenSizeInInches * 160

你的情況:

寬度以英寸= 480px/(240px/inch) = 2 inches 高度以英寸= 800px/(240px/inch) = 10/3 inches

檢查:sqrt(sqr(2) + sqr(10/3))〜= 4 inches這是Galaxy S的大小。

所以在dp的大小是(2 * 160) x (10/3 * 160) = 320dp x 533.3dp