如何计算与设备无关的像素单元?
How to compute device independent pixel units?
我假设术语密度无关像素和设备无关像素具有相同的含义。
密度无关像素(dip)是一种虚拟像素单元,相当于160dpi
(MDPI)屏幕上的一个物理像素。
4dip
等同于 320dpi
(XHDPI) 屏幕,因为在 320dpi 屏幕上用于渲染相同数据的像素数是 4
(横向 2 个像素,向下 2 个像素).
如何计算 240dpi
(HDPI) 屏幕的像素单位?
您可以使用这样的 DPI 计算器 one.You can check http://petrnohejl.github.io/Android-Cheatsheet-For-Graphic-Designers/#screen-densities-and-icon-dimensions 计算 DPI 比例。使用这个,HDPI = MDPI x 1.5 所以在你的情况下,该值将是 240
MDPI 的 HDPI 是 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 英寸,这是所有具有不同像素密度的设备的通用物理尺寸。
考虑到当前设备指标,您可以使用此函数从 dp 获取像素值。
public int dpToPx(int dp){
return Math.round(dp*(getResources().getDisplayMetrics().xdpi/ DisplayMetrics.DENSITY_DEFAULT));
}
我假设术语密度无关像素和设备无关像素具有相同的含义。
密度无关像素(dip)是一种虚拟像素单元,相当于160dpi
(MDPI)屏幕上的一个物理像素。
4dip
等同于 320dpi
(XHDPI) 屏幕,因为在 320dpi 屏幕上用于渲染相同数据的像素数是 4
(横向 2 个像素,向下 2 个像素).
如何计算 240dpi
(HDPI) 屏幕的像素单位?
您可以使用这样的 DPI 计算器 one.You can check http://petrnohejl.github.io/Android-Cheatsheet-For-Graphic-Designers/#screen-densities-and-icon-dimensions 计算 DPI 比例。使用这个,HDPI = MDPI x 1.5 所以在你的情况下,该值将是 240
MDPI 的 HDPI 是 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 英寸,这是所有具有不同像素密度的设备的通用物理尺寸。
考虑到当前设备指标,您可以使用此函数从 dp 获取像素值。
public int dpToPx(int dp){
return Math.round(dp*(getResources().getDisplayMetrics().xdpi/ DisplayMetrics.DENSITY_DEFAULT));
}