在android中从dp转换为px

时间:2012-05-02 23:10:39

标签: android screen resolution

我在Android文档中找到了这个:

  

将dp单位转换为屏幕像素非常简单:px = dp * (dpi / 160)

但我不明白dpi是什么以及如何计算。有什么帮助吗?

4 个答案:

答案 0 :(得分:2)

dpi代表Dots Per Inch。在android中,它用于表示移动设备的屏幕密度。

Android智能手机支持4种类型的dpi

  1. 低密度(120),ldpi
  2. 中密度(160),mdpi
  3. 高密度(240),hdpi
  4. 超高密度(320),xhdpi
  5. 您可以从DisplayMetrics结构中获取显示信息:

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

    有关屏幕尺寸的详情,请访问http://developer.android.com/guide/practices/screens_support.html

答案 1 :(得分:1)

dpi代表每英寸点数,是任何屏幕的物理特征。

您可以通过检查xdpi类的ydpiDisplayMetrics字段来访问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 :(得分:0)

请仔细阅读这篇文章,我想你会得到答案:)

What is the difference between "px", "dp", "dip" and "sp" on Android?

答案 3 :(得分: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。