2017-07-26 68 views
0

我正在尝试创建一个将在onClick按钮上显示图像的活动。到目前为止,我已成功地让我的应用程序在单击按钮时淡入图像,但我希望图像显示在已按下的按钮上。根据按钮的位置动态调整ImageView的位置

从我的理解你想要使用LayoutParams我试图做的,但它似乎从我的Button.getX()getY()得到错误的值。这里是我的代码:

button1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      ConstraintLayout.LayoutParams layoutParamsButton1 = new ConstraintLayout.LayoutParams(((int)button1.getX()), ((int)button1.getY())); 
      whatImage[0].setLayoutParams(layoutParamsButton1); 

      fadeInAndHideImage(whatImage[0]); 
     } 
    }); 

whatImage[]只是ImageView秒的数组,因为我想改变周围的地方,仅供参考。

无论如何,我认为可能发生的问题是getX()getY()方法重新调整错误的值,因为我的按钮受限于android.support.constraint.Guideline s。另外,我不认为这是一个问题,但我必须将它们投射为(int),因为它们都返回浮动。可能会有一些舍入错误,但我怀疑getX()getY()会返回半个或四分之一像素的值。

感谢

编辑

只是想添加((int)uno.getX()), ((int)firstRail.getY())到我LayoutParams代替按钮X和Y(UNO和firstRail是我使用的按钮准则),但不幸的是把该按钮与LayoutParams使用按钮getX()getY()方法相同。

而且,它似乎缩小图片,当它移动它,这也是奇

EDIT 2

唉,打印到了之后,看看究竟这些价值观是什么,button1.getX()firstRail.getX()均返回0.0。这甚至可以使用约束布局?

回答

1

尝试:

whatImage[0].setX(button1.getX());

whatImage[0].setY(button1.getY());

而且记住,调整图像的,如果你有一些填充属性添加到您的ImageView成XML

+0

甜可能发生的事情!它似乎有效。我做了,但是取出' - whatImage [0] .getWidth()/ 2',因为那个部分在不需要和setY()的第二部分一起扔到左边。是的,感谢您在关于填充的部分中添加内容。 – cjnash