通常我们在xml文件中通过android:margin属性来设置View的margin。有时希望在程序中创建View并设置其margin,可是View没有直接设置margin的方法setMargin。

查阅api发现ViewGroup.MarginLayoutParams提供setMargin方法。api还提供ViewGroup.MarginLayoutParams子类比如:LinearLayout.LayoutParams, FrameLayout.LayoutParams, RelativeLayout.LayoutParams。

可以使用其中之一来设置View的margin。

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(1, 0, 1, 0);
button.setLayoutParams(params);