2

我假设术语Density-independent pixelsDevice-independent pixels具有相同的含义。

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

4dip相当于320dpi(XHDPI) 屏幕,因为用于在 320dpi 屏幕上渲染相同数据的像素数是4(2 像素宽和 2 像素向下)。

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

4

3 回答 3

1

HDPI 是 MDPI 的 x1.5。

即 160x1.5 = 240。

在dip 单位的标准MDPI 设备上,1dip 为1px。在 HDPI 设备上,物理上相同大小的 1dip 为 1.5px。

当你第一次知道某个 px 值时,你可以通过除以它的 scale 将其转换为 dip 例如,HDPI 的 scale 是 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 英寸的物理尺寸,它是所有具有不同像素密度的设备的常见物理尺寸。

于 2015-11-18T06:02:49.697 回答
0

您可以使用像这样的DPI 计算器。您可以查看http://petrnohejl.github.io/Android-Cheatsheet-For-Graphic-Designers/#screen-densities-and-icon-dimensions了解 DPI 比例。使用这个,HDPI = MDPI x 1.5 所以在你的情况下,值将是 240

于 2015-11-18T06:01:24.113 回答
0

考虑到当前设备指标,您可以使用此函数从 dp 获取像素值。

public int dpToPx(int dp){
    return Math.round(dp*(getResources().getDisplayMetrics().xdpi/ DisplayMetrics.DENSITY_DEFAULT));
}
于 2015-11-18T06:03:54.363 回答