繁体   English   中英

如何以编程方式使用“dp”设置边距?

[英]How Can I Set Margin with 'dp' programmatically?

我正在尝试以编程方式创建设计。 我正在使用 LayoutParams 获取详细信息,并且我想设置 Margin 并且我看到了 ... setMargins(0, 100, 0, 100)但我想使用 'dp' 进行设置,如下所示:

<TextView
          ...
          android:layout_marginLeft="10dp"
          .../>

如何使用 'dp' 设置边距?

那么你首先要知道父布局,如果它是你需要的 RelativeLayout :

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(this);

如果它是线性的,请确保将相对替换为线性以获得正确的布局参数。现在您可以使用:

layoutParams.setMargins(i1,i2,i3,i4);

所有的值都应该以像素为单位,所以如果你需要一个方法,它应该为你将 dp 转换为 px。然后随意使用我的:

public int dpToPx(Context context, float dp) {
    return Math.round(dp * getDisplayMetrics(context).density);
}

现在只需将 layoutParams 设置为子视图:

textView.setLayoutParams(layoutParams);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM