我在 Android 文档中找到了这个:
dp 单位到屏幕像素的转换很简单:
px = dp * (dpi / 160)
但我不明白它是什么dpi
以及它是如何计算的。有什么帮助吗?
我在 Android 文档中找到了这个:
dp 单位到屏幕像素的转换很简单:
px = dp * (dpi / 160)
但我不明白它是什么dpi
以及它是如何计算的。有什么帮助吗?
dpi 代表每英寸点数。在android中,它用于表示手机的屏幕密度。
Android 智能手机支持 4 种 dpi
您可以从DisplayMetrics结构中获取有关显示的信息:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
有关屏幕尺寸的更多信息,请访问http://developer.android.com/guide/practices/screens_support.html。
dpi
代表每英寸点数,是任何屏幕的物理特征。
xdpi
您可以通过检查类的和ydpi
字段来访问 x 和 y dpi 值DisplayMetrics
。要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
也许玩 DP 计算器会说明这是如何工作的。在我看来,这个漂亮的转换器最好地展示了它。
它说明了像素尺寸如何在不同密度的屏幕之间显示为不同的物理尺寸。例如,48px 将在两倍 DPI 的屏幕上显示一半大。
Android 已知有多种 DPI bin:
基线 DPI 为 160 (mdpi),其中 1dp = 1px。在该值的两倍处,320 (xhdpi),1dp = 2px。
请通过这篇文章,我想你会得到你的答案:)