如何将像素转换为dp?

Pet*_*sey 0 java android pixels density-independent-pixel

我正在尝试用Java创建一个简单的Android应用程序,但我在路上遇到了一个障碍.

我有一个包含许多位图的数组列表,我正在将它们绘制到画布上,但我正在使用像素的测量,这在大多数设备上都没有出现.

那么有没有办法找到我的图形在dp中的大小,并用dp将其缩放到屏幕密度/大小,并用dp或dip定位它.

我的图形(正方形):

图形尺寸ldpi = 50px

图形尺寸mdpi = 75px

hdpi中的图形大小= 100px

代码中的其他所有内容都很好,除了它看起来很奇怪?

任何帮助,将不胜感激.

詹姆士.

Bla*_*elt 7

从android开发人员doc:

在定义UI布局时应使用的虚拟像素单元,以与密度无关的方式表达布局尺寸或位置.与密度无关的像素相当于160 dpi屏幕上的一个物理像素,这是系统为"中等"密度屏幕假定的基线密度.在运行时,系统根据所使用屏幕的实际密度,根据需要透明地处理dp单元的任何缩放.dp单位到屏幕像素的转换很简单:px = dp*(dpi/160).例如,在240 dpi屏幕上,1 dp等于1.5个物理像素.在定义应用程序的UI时,应始终使用dp单位,以确保在具有不同密度的屏幕上正确显示UI

有关详细信息,请参阅