android:layout_marginBottom=“20dp”如何通过编程进行设置

android:layout_marginBottom=“20dp”如何通过编程进行设置,android,layout,material-design,Android,Layout,Material Design,我尝试了这么多的例子,但这些答案并没有给我任何清晰。有什么帮助吗 RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(0, 0, 0, 20); progressBar.setLayo

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

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

是的,您可以使用

    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));
    }

可能是@GautamChibde的复制品我不明白这个答案,所以我提出了这个问题。rajan的答案针对我的问题很高兴我能帮上忙:快乐编码