我正在尝试以编程方式创建设计。我正在使用LayoutParams来获取详细信息,我想设置Margin,我看到了... setMargins(0,100,0,100),但是我想像这样设置'dp':>
<TextView
...
android:layout_marginLeft="10dp"
.../>
如何用'dp'设置边距?
答案 0 :(得分:1)
如果您需要使用父级布局,那么首先要了解它:
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(this);
如果是线性,请确保将“相对”替换为“线性”以获得正确的layoutParams。现在,您可以使用:
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);