2011-05-18 80 views
2

在我的应用程序中,我使用方法setMargins(....)进行一些视图。关于帮助:View.setMargins(left,top,right,bottom);

在我的布局,我固定的我的“DP”,而不是像素视图的宽度,heigth和大小,

和在我的代码,当我设定边距,它给出了一个坏的结果,但是当我在我的布局中用px更改dp,那很好。

所以我的问题是:我可以设置边距与DP值,?? 例如:

myView.setMargins(left in dp , top in dp , right in dp , bottom in dp) ; 

在此先感谢

回答

7

你可以做到这一点很容易,只需要定义维度元素(值的strings.xml),并在你的代码中引用它们。

这是strings.xml中

<dimen name="left_border_distance">32dip</dimen> 

线,但你不需要把直接,而是通过IDE。

然后在你的代码

int marginLeft = (int) getResources().getDimensionPixelSize(R.dimen.left_border_distance); 
myView.setMargins(marginLeft , top in dp , right in dp , bottom in dp) ; 
+0

您好,感谢您的快速回答:对,你能不能给我这样一个例子PLZ, 二:是否有另一种方法来做到这一点,而不传递res/values/strings.xml? 谢谢Zelimir – Houcine 2011-05-18 09:00:14

+0

下面的答案描述了另一种方法。我更喜欢将GUI设计值放到资源中,而不是在代码中使用硬编码值。他们很容易从一个地方改变。 – Zelimir 2011-05-18 09:07:14

+0

你的方法是好的,但我正在开发一个SD广告,所以我需要在代码中定义,而不是在strings.xml :) – Houcine 2011-05-18 09:13:18