Android dip转换无效

时间:2014-03-19 00:59:59

标签: android android-layout margins

我试图通过使用此代码来创建edittext的边距,但是当我将此代码的乘积作为边距时,边距占用的区域比倾角值小很多。我知道这一点,因为当我把160放入DIP_Value时,边距只占据了屏幕的一部分而不是整个屏幕。我该如何解决这个问题?

int px = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DIP_Value , getResources().getDisplayMetrics()); 
RelativeLayout.LayoutParams textbox = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
textbox.setMargins(px, 0, 0, 0);

1 个答案:

答案 0 :(得分:0)

  

...当我把160作为DIP_Value时,保证金只占了部分   屏幕,而不是整个事情。

不,它应占用一英寸,而不是#34;整个事情。"您似乎对dpidip感到困惑。 Android参考分辨率为160dpi =每英寸160点。所以160 dip s(=密度无关像素)应该测量大约一英寸。如果你的设备的屏幕实际上有240 dpi,那么宽度为160dip的小部件仍然大约一英寸宽,但实际上占用240像素。

dip可让您专注于物理尺寸而非密度。你的5"你可能有一个1920x1080的屏幕。电话或10"片剂;如果你的小部件是160dip的方形,它在两个设备上都是一平方英寸。这有助于您保持UI元素足够大以便触摸。您可以对所有屏幕尺寸使用相同的布局,但您可能希望为largexlarge屏幕设置不同的布局,以提供其他信息(并使它们看起来不太稀疏)。