在android中动态更改ImageView的位置

在android中动态更改ImageView的位置,android,layoutparams,Android,Layoutparams,全部 我需要使用以下代码动态更改ImageView和iam的位置 int x=100,y=100; RelativeLayout.LayoutParams mparam = new RelativeLayout.LayoutParams((int)(LayoutParams.FILL_PARENT),(int)(LayoutParams.FILL_PARENT)); mparam.topMargin=x; mparam.leftMargin=y; ball.setLayo

全部

我需要使用以下代码动态更改ImageView和iam的位置

int x=100,y=100;
RelativeLayout.LayoutParams mparam = new RelativeLayout.LayoutParams((int)(LayoutParams.FILL_PARENT),(int)(LayoutParams.FILL_PARENT));
    mparam.topMargin=x;
    mparam.leftMargin=y;
    ball.setLayoutParams(mparam);
    x+=100;
    y+=100;
但是我没有零钱


可能吗?怎么做呢?

你改变利润率,但不是它的位置,而且,这似乎不是一个好的解决方案。 尝试使用方法查看布局(int,int,int,int) 说:

公共空间布局(内部l、内部t、内部r、内部b) 自:API级别1 为视图及其所有子体指定大小和位置 这是布局机制的第二阶段。(第一个是测量)。 在此阶段中,每个父级调用其所有子级上的layout来定位它们。 这通常使用存储在中的子测量值来完成 测量通过()。派生类不应重写此方法。衍生 有孩子的课程应该覆盖onLayout。在这种方法中,他们应该调用 在每个孩子身上的布局。 参数 左位置,相对于父对象 t顶部位置,相对于父级 r相对于父对象的右位置 b相对于父对象的底部位置
您可以在视图上调用setPadding。因此,在您的代码中(您应该将其放入代码块!),只需添加对该方法的调用:

int x=100,y=100; 
LayoutParams mparam = new LayoutParams((int)(LayoutParams.FILL_PARENT),(int) (LayoutParams.FILL_PARENT));
ball.setLayoutParams(mparam); 
ball.setPadding(x,y,0,0);

x+=100; y+=100;
ball.setPadding(x,y,0,0);

啊,我在其他一些帖子中看到,setPadding不知何故不起作用。。另一种可能性(我认为)是在将布局参数交给球后再次更改布局参数,然后第二次交给球..同意@GrigoryKalabin的说法,这是一种黑客行为,但Grigory的解决方案不起作用。。。这样称呼它:ball.layout(iLeft、iTop、iRight、iBottom);
int x=100,y=100; 
LayoutParams mparam = new LayoutParams((int)(LayoutParams.FILL_PARENT),(int) (LayoutParams.FILL_PARENT));
ball.setLayoutParams(mparam); 
ball.setPadding(x,y,0,0);

x+=100; y+=100;
ball.setPadding(x,y,0,0);