我正在尝试创建一个将在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。这甚至可以使用约束布局?
甜可能发生的事情!它似乎有效。我做了,但是取出' - whatImage [0] .getWidth()/ 2',因为那个部分在不需要和setY()的第二部分一起扔到左边。是的,感谢您在关于填充的部分中添加内容。 – cjnash