2012-05-02 39 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。