我想要从java获取并设置我的LinearLayout的边距。我不想设置像右,左,上,下等。我只想从各方面设置简单的边距。我知道我可以通过XML来实现,但我知道如何通过java实现它。
我通过xml完成了如下
android:layout_margin="20dp"
任何人都可以建议我如何通过java做到这一点?
答案 0 :(得分:1)
您可以使用以下代码执行此操作。
LinearLayoutview ll= findViewById(R.id.linearLayout); //or however you need it
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) ll.getLayoutParams();
可以通过
访问边距lp.leftMargin;
lp.rightMargin;
lp.topMargin;
lp.bottomMargin;
现在您可以使用代码
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
params.setMargins(20,20,20,20);
ll.setLayoutParams(params);
答案 1 :(得分:1)
要为视图设置边距,您可以使用以下代码:
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(30, 20, 30, 0);

要获得视角,请使用此代码
View view = findViewById(...) //or however you need it
LayoutParams lp = (LayoutParams) view.getLayoutParams();
// margins are accessible via
lp.leftMargin;
lp.rightMargin;
lp.topMargin;
lp.bottomMargin;
// perhaps ViewGroup.MarginLayoutParams will work for you. It's a base class for //other LayoutParams.
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();

注意:很抱歉使用代码段... 它会像魅力一样......
答案 2 :(得分:0)
需要使用类型:MarginLayoutParams
试试这个:
MarginLayoutParams params = (MarginLayoutParams) vector8.getLayoutParams();
params.width = 200; params.leftMargin = 100; params.topMargin = 200;
MarginLayoutParams的代码示例:
http://www.codota.com/android/classes/android.view.ViewGroup.MarginLayoutParams