android:layout_marginBottom =“20dp”我怎么能以编程方式设置它

时间:2018-03-09 06:32:56

标签: android layout material-design

我尝试了很多例子,但这些答案并没有给我任何清晰的答案。任何帮助appriciated

2 个答案:

答案 0 :(得分:1)

是的,您可以使用

以编程方式设置margin
    ProgressBar view;
    RelativeLayout.LayoutParams params = view.getLayoutParams();
    int marginInPx = convertDpToPx(20);
    params.setMargins(0,0,0,marginInPx);
    view.setLayoutParams(params);

    private int convertDpToPx(float dp){
       DisplayMetrics metrics = getResources().getDisplayMetrics();
       return (int)((int)dp * ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT));
    }

答案 1 :(得分:0)

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(0, 0, 0, 20);
progressBar.setLayoutParams(layoutParams);

注意:我添加的边距是px,您可能需要以编程方式将其转换为dp。