使用“dp”而不是其他的方法是明智的吗?
问题描述:
在Android中,当我测量时,使用DP或其他方法是否明智?我害怕dp可能会随着设备的不同而变化,而且除了我的手机以外,我的应用程序看起来都很糟糕。使用“dp”而不是其他的方法是明智的吗?
答
你应该总是使用dp。如果你需要在像素值,你可以使用此方法 -
public static int dpToPixels(Context context, float dp) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dp * scale + 0.5f);
}
答
总是使用浸
密度独立的像素
答
如果你看一下reference文档,你会看到这是DP点。具体来说,
密度独立像素相当于160 dpi屏幕上的一个物理像素,它是系统为“中等”密度屏幕假设的基准密度。在运行时,系统根据使用的屏幕的实际密度,根据需要透明地处理dp单位的任何缩放比例。将dp单位转换为屏幕像素很简单:px = dp *(dpi/160)。例如,在240 dpi屏幕上,1 dp等于1.5个物理像素。定义应用程序的用户界面时,应始终使用dp单位,以确保在不同密度的屏幕上正确显示您的用户界面。
所以,除非你想限制在一个单一的屏幕大小和密度,否则总是使用dp。
答
卡西姆,dp或dip是为了防止你害怕什么而发明的。看看这篇文章:http://developer.android.com/guide/practices/screens_support.html,以及这个其他问题:What is the difference between "px", "dp", "dip" and "sp" on Android?
答
除了dp
,您还可以使用pt
(一英寸的点= 1/72),in
(英寸)和mm
(毫米)。
由于所有这些单位都基于实际的物理尺寸,所以您的UI元素将在任何设备上保持相同的物理尺寸。