2013-02-24 81 views
0

到:我不明白的TypedValue

(metrics.density)密度:1.0(metrics.densityDpi)密度DPI:160

之間的區別:

float mm_1 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 1, getResources().getDisplayMetrics()); 

而且

float mm_2 = 1 * metrics.densityDpi * (metrics.density/25.4f); 

爲什麼會有這種差異?

mm_1 = 1.33333333 
mm_2 = 6.2992125 
+0

找出dpi的毫米數量。 – 2013-02-24 19:38:50

回答

0

TypedValue.applyDimension()不從單位轉換爲英寸(我假設你正在試圖做的,基於25.4)。

它只是將值轉換爲系統將使用的值,具體取決於當前的密度。我假設您使用的屏幕爲hdpi,因爲hdpi的密度係數爲4/3。嘗試一下mdpi,它可能會最終升到1.0,因爲它不需要轉換。

+0

找出dpi的毫米數量。 我使用三星Ace。 – 2013-02-24 19:38:08

+0

DisplayMetrics指標=新的DisplayMetrics(); getWindowManager()。getDefaultDisplay()。getMetrics(metrics); – 2013-02-24 19:50:21