如何计算与设备无关的像素单元?

时间:2015-11-18 05:56:21

标签: android pixel density-independent-pixel

我假设术语与密度无关的像素与设备无关的像素具有相同的含义。

与密度无关的像素(dip)是虚拟像素单位,相当于160dpi(MDPI)屏幕上的一个物理像素。

4dip320dpi(XHDPI)屏幕等效,因为用于在320dpi屏幕上呈现相同数据的像素数为4(2像素宽,2像素向下)。

如何计算240dpi(HDPI)屏幕的像素单位?

3 个答案:

答案 0 :(得分:1)

HDPI是MDPI的x1.5。

那是160x1.5 = 240。

在MDPI设备上,这是dip设备的标准配置,1dip是1px。 在HDPI设备上,物理上相同的大小1dip是1.5px。

当您最初知道一些px值时,您可以通过以其比例将其转换为dip,例如,因此HDPI的比例为1.5,您可以将px值除以1.5。

对于相同的2dip,HDPI有3px横向和向下,而MDPI横向和向下2px。

2dip => 2px on MDPI
2dip => 2 x 1.5 = 3px on HDPI

dip 的概念是1 dip意味着近似1/160英寸的物理尺寸,它是具有不同像素密度的所有设备的常见物理尺寸。

答案 1 :(得分:0)

您可以使用此one之类的DPI计算器。您可以检查http://petrnohejl.github.io/Android-Cheatsheet-For-Graphic-Designers/#screen-densities-and-icon-dimensions的DPI比例。使用它,HDPI = MDPI x 1.5所以在你的情况下,值将是240

答案 2 :(得分:0)

您可以使用此功能根据当前设备指标从dp获取像素值。

public int dpToPx(int dp){
    return Math.round(dp*(getResources().getDisplayMetrics().xdpi/ DisplayMetrics.DENSITY_DEFAULT));
}