Get margin of a View

Arnab Chakraborty picture Arnab Chakraborty · Sep 19, 2011 · Viewed 61k times · Source

How can I get the margin value of a View from an Activity? The View can be of any type.

After a bit of searching I found out ways to get padding of a view, but couldn't find anything on Margin. Can anyone help?

I tried something like this,

ViewGroup.LayoutParams vlp = view.getLayoutParams();
int marginBottom = ((LinearLayout.LayoutParams) vlp).bottomMargin;

This works, but in the above code I have assumed the view to be a LinearLayout. But I need to get the margin attribute even when I don't know the view type.

Answer

Vladimir picture Vladimir · Sep 19, 2011

try this:

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;

edit: perhaps ViewGroup.MarginLayoutParams will work for you. It's a base class for other LayoutParams.

ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();

http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html