我在Android文档中找到了这个:
将dp单位转换为屏幕像素非常简单:
px = dp * (dpi / 160)
但我不明白dpi
是什么以及如何计算。有什么帮助吗?
答案 0 :(得分:2)
dpi代表Dots Per Inch。在android中,它用于表示移动设备的屏幕密度。
Android智能手机支持4种类型的dpi
您可以从DisplayMetrics结构中获取显示信息:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
有关屏幕尺寸的详情,请访问http://developer.android.com/guide/practices/screens_support.html。
答案 1 :(得分:1)
dpi
代表每英寸点数,是任何屏幕的物理特征。
您可以通过检查xdpi
类的ydpi
和DisplayMetrics
字段来访问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垃圾箱:
基线DPI为160(mdpi),其中1dp = 1px。该值的两倍,320(xhdpi),1dp = 2px。