使用“dp”而不是别的东西是明智的吗?

时间:2011-08-04 18:48:01

标签: android pixel measurement

在我测量的Android中,使用DP或其他什么是明智的吗?我害怕dp可能会因设备而异,我的应用程序在手机以外的任何地方看起来都很糟糕。

5 个答案:

答案 0 :(得分:0)

始终使用 dip

密度无关像素

答案 1 :(得分:0)

如果查看reference文档,您会发现这是dp的重点。具体地,

  

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

因此,除非您希望限制为单个屏幕尺寸和密度,否则请始终使用dp。

答案 2 :(得分:0)

Qasim,dp或dip是为了防止你害怕而发明的。查看此文章:http://developer.android.com/guide/practices/screens_support.html,以及其他问题:What is the difference between "px", "dp", "dip" and "sp" on Android?

答案 3 :(得分:0)

你应该总是使用dp。如果需要像素值,可以使用此方法 -

public static int dpToPixels(Context context, float dp) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (dp * scale + 0.5f);
}

答案 4 :(得分:0)

除了dp之外,您还可以使用pt(点数= 1/72英寸),in(英寸)和mm(毫米)。

由于所有这些单元都基于实际的物理尺寸,因此您的UI元素将在任何设备上保持相同的物理尺寸。