根据Button的位置动态调整ImageView的位置

时间:2017-07-26 14:40:27

标签: android button imageview layoutparams

我正在尝试创建一个活动,该活动将在按钮的onClick上显示图像。到目前为止,我已经成功地使我的应用程序在您单击按钮时淡入图像,但我希望图像显示在已按下的按钮上。

根据我的理解,您希望使用我尝试过的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()的数组,因为我想改变它们的位置,只是fyi。

无论如何,我认为可能发生的问题是getY()android.support.constraint.Guideline方法重新调整错误值的问题,因为我的按钮受(int)约束。此外,我不认为这是一个问题,但我必须将它们转换为getX() s因为它们都返回浮点数。可能存在一些舍入错误,但我怀疑getY()((int)uno.getX()), ((int)firstRail.getY())会返回半个或四分之一像素的值。

由于

修改

只是尝试将LayoutParams添加到我的LayoutParams而不是按钮x和y,(uno和firstRail是我用于按钮的指南),但遗憾的是它将按钮放在同一个按钮中使用getX()getY()按钮作为button1.getX()的确切位置。

此外,它似乎在移动时缩小图像,这也是奇数

编辑2

呃,打印到外面看看这些值究竟是什么,firstRail.getX()Class#new都返回0.0。使用Constraint布局时,这是否可行?

1 个答案:

答案 0 :(得分:1)

尝试:

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

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

另请注意,如果您将一些填充属性添加到ImageView中,则可能会发生图像调整大小