Get margin of a View
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
Try
ViewGroup.MarginLayoutParams vlp = (MarginLayoutParams) view.getLayoutParams()
vlp.rightMargin
vlp.bottomMargin
vlp.leftMargin
vlp.topMargin
This returned the correct margains for my view atleast.
http://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html
now use this edited code. this will help you
FrameLayout.LayoutParams lp=(FrameLayout.LayoutParams)mainLayout.getLayoutParams();
lp.leftMargin // for left margin
lp.rightMargin // for right margin
As others suggested, layout_margin# is the space between the parent's # edge and your view.
- # replaces "Left", "Right", "Top" or "Bottom"
Getting/setting margins worked for me with:
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mView.getLayoutParams();
params.topMargin += 20;
mView.requestLayout();
Of course, my View was indeed a ViewGroup and the parent was a ViewGroup as well. In most cases, you should cast your layout params to the parent's View class LayoutParams (in this case it's ViewGroup and RelativeLayout)