80,349
社区成员
发帖
与我相关
我的任务
分享
public static void setPosition(View view,int x,int y)
{
if(view == null)
return;
int parentWidth = 0;
int parentHeight= 0;
ViewParent viewParent = view.getParent();
if(viewParent instanceof View)
{
parentWidth = ((View)viewParent).getWidth();
parentHeight= ((View)viewParent).getHeight();
}
ViewGroup.MarginLayoutParams margin = new ViewGroup.MarginLayoutParams(view.getLayoutParams());
int right = x + margin.width;
int bottom = y + margin.height;
if(right > parentWidth || bottom > parentHeight)
{
margin.setMargins(x,y, right, bottom);
}
else
{
margin.leftMargin = x;
margin.topMargin = y;
}
view.setLayoutParams(newLayoutParams(view,margin));
}
//------------------------
/**
* 根据控件类型创建Params
* */
private static ViewGroup.LayoutParams newLayoutParams(View view,ViewGroup.MarginLayoutParams margin)
{
ViewGroup.LayoutParams layoutParams = null;
if(view instanceof LinearLayout)
{
layoutParams = new LinearLayout.LayoutParams(margin);
}
else if(view instanceof GridLayout)
{
layoutParams = new GridLayout.LayoutParams(margin);
}
else if(view instanceof FrameLayout)
{
layoutParams = new FrameLayout.LayoutParams(margin);
}
else if(view instanceof TableLayout)
{
layoutParams = new TableLayout.LayoutParams(margin);
}
else
{
layoutParams = new RelativeLayout.LayoutParams(margin);
}
return layoutParams;
}