我正在尝试创建一个活动,该活动将在按钮的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布局时,这是否可行?
答案 0 :(得分:1)
尝试:
whatImage[0].setX(button1.getX());
whatImage[0].setY(button1.getY());
另请注意,如果您将一些填充属性添加到ImageView中,则可能会发生图像调整大小