2012-05-02 64 views
0

我發現這個Android的文檔中,以PX:從DP轉換在android系統

的DP單位屏幕像素的轉化很簡單:px = dp * (dpi/160)

但我不明白是什麼dpi是和如何計算。任何幫助?

回答

1

dpi代表每英寸點數,並且是任何屏幕的物理特性。

您可以通過檢查DisplayMetrics類的xdpiydpi字段來訪問x和y dpi的值。爲了讓DisplayMetrics使用類似下面的...

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
float x = metrics.xdpi; // Retrieve the x dpi value 
float y = metrics.ydpi; // Retrieve the y dpi value 
2

DPI代表每英寸點數。在android中,它被用來表示移動設備的屏幕密度。

Android智能手機支持4種類型的DPI

  1. 低密度(120)的,LDPI
  2. 中密度(160),MDPI
  3. 高密度(240),HDPI
  4. 超高密度(320),xhdpi

您可以從DisplayMetrics結構中獲取信息:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 

有關屏幕尺寸的更多信息,請訪問http://developer.android.com/guide/practices/screens_support.html

0

也許玩DP計算器會說明這是如何工作的。 This nifty converter demonstrates it best,在我看來。

它說明像素尺寸如何在不同密度的屏幕之間顯示爲不同密度的物理尺寸。例如,48px將在屏幕上顯示爲DPI兩倍的一半。

有已知的Android各種DPI箱:

  • LDPI,120 dpi的
  • MDPI,160 dpi的
  • tvdpi,213 dpi的
  • HDPI,240 dpi的
  • xhdpi,320 dpi
  • xxhdpi,480 dpi
  • xxxhdpi,640 dpi

基準DPI爲160(mdpi),其中1dp = 1px。在這個值的兩倍,320(xhdpi),1dp = 2px。