根据 Button 的位置动态调整 ImageView 的位置
Adjusting the location of an ImageView dynamically based on the location of a Button
我正在尝试创建一个 activity,它将在单击按钮时显示图像。到目前为止,我已经成功地使我的应用程序在您单击按钮时淡入淡出图像,但我希望图像显示在已按下的按钮上。
根据我的理解,您想使用我尝试过的 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
的限制。另外,我认为这不是问题,但我必须将它们转换为 (int)
s,因为它们都 return 浮动。可能存在一些舍入错误,但我怀疑 getX()
和 getY()
会 return 值的一半或四分之一像素。
谢谢
编辑
刚刚尝试将 ((int)uno.getX()), ((int)firstRail.getY())
添加到我的 LayoutParams
而不是按钮 x 和 y,(uno 和 firstRail 是我用于按钮的指南),但不幸的是它把按钮放在使用按钮 getX()
和 getY()
方法与 LayoutParams
相同的位置。
另外,图片移动的时候好像缩小了,这也很奇怪
编辑 2
呃,在打印出来查看这些值到底是什么之后,button1.getX()
和 firstRail.getX()
都是 return 0.0。这在使用约束布局时甚至可能吗??
尝试:
whatImage[0].setX(button1.getX());
whatImage[0].setY(button1.getY());
另外请记住,如果您将一些填充属性添加到您的 ImageView 到 xml
中,则可能会发生调整图像大小的情况
我正在尝试创建一个 activity,它将在单击按钮时显示图像。到目前为止,我已经成功地使我的应用程序在您单击按钮时淡入淡出图像,但我希望图像显示在已按下的按钮上。
根据我的理解,您想使用我尝试过的 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
的限制。另外,我认为这不是问题,但我必须将它们转换为 (int)
s,因为它们都 return 浮动。可能存在一些舍入错误,但我怀疑 getX()
和 getY()
会 return 值的一半或四分之一像素。
谢谢
编辑
刚刚尝试将 ((int)uno.getX()), ((int)firstRail.getY())
添加到我的 LayoutParams
而不是按钮 x 和 y,(uno 和 firstRail 是我用于按钮的指南),但不幸的是它把按钮放在使用按钮 getX()
和 getY()
方法与 LayoutParams
相同的位置。
另外,图片移动的时候好像缩小了,这也很奇怪
编辑 2
呃,在打印出来查看这些值到底是什么之后,button1.getX()
和 firstRail.getX()
都是 return 0.0。这在使用约束布局时甚至可能吗??
尝试:
whatImage[0].setX(button1.getX());
whatImage[0].setY(button1.getY());
另外请记住,如果您将一些填充属性添加到您的 ImageView 到 xml
中,则可能会发生调整图像大小的情况