在我的应用程序中,我使用方法setMargins(....)来查看某些视图。
在我的布局中,我使用'dp'修正了我的视图的宽度,高度和大小,而不是像素,
在我的代码中,当我设置边距时,它会产生不好的结果,但是当我在布局中使用px更改dp时,这样可以正常工作。
所以我的问题是:我可以用dp值设置边距吗? 例如:
myView.setMargins(left in dp , top in dp , right in dp , bottom in dp ) ;
提前致谢
答案 0 :(得分:7)
你可以轻松地做到这一点,只需要定义Dimension元素(值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 ) ;
答案 1 :(得分:1)
或者你可以看看这个答案: Margins of a LinearLayout, programmatically with dp