[英]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.