【问题标题】:Help about : View.setMargins(left , top, right , bottom ) ; [duplicate]帮助: View.setMargins(left , top, right , bottom ) ; [复制]
【发布时间】:2011-05-18 08:52:36
【问题描述】:

在我的应用程序中,我对某些视图使用 setMargins(....) 方法。

在我的布局中,我使用“dp”而不是像素来固定视图的宽度、高度和大小,

在我的代码中,当我设置 Margins 时,它给出了一个不好的结果,但是当我在我的布局中用 px 更改 dp 时,这很好。

所以我的问题是:我可以用 dp 值设置边距吗?? 示例:

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

提前致谢

【问题讨论】:

    标签: android android-ui margins


    【解决方案1】:

    您可以轻松地做到这一点,只需要定义 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 ) ;  
    

    【讨论】:

    • 嗨,谢谢你的快速回答:p,你能给我一个例子吗?第二:有没有另一种方法可以做到这一点而不通过 res/values/strings.xml ?谢谢泽利米尔
    • 下面的答案中描述了另一种方法。我更喜欢将 GUI 设计值放到资源中,而不是在代码中使用硬编码值。它们很容易从一个地方更改。
    • 你的方法很好,但我正在为广告开发一个 sdk,所以我需要在代码中定义它,而不是在 strings.xml 中:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    相关资源
    最近更新 更多