【发布时间】:2018-01-01 23:13:12
【问题描述】:
我正在尝试创建一个在单击按钮时显示图像的活动。到目前为止,当您单击按钮时,我已经成功地使我的应用程序淡入图像,但我希望图像显示在已按下的按钮上。
据我了解,您想使用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[] 只是 ImageViews 的数组,因为我想改变它们的位置,仅供参考。
无论如何,我认为可能发生的是getX() 和getY() 方法重新调整错误值的问题,因为我的按钮受到android.support.constraint.Guidelines 的限制。另外,我认为这不是问题,但我必须将它们转换为(int)s,因为它们都返回浮点数。可能存在一些舍入错误,但我怀疑 getX() 和 getY() 会返回半像素或四分之一像素的值。
谢谢
编辑
刚刚尝试将 ((int)uno.getX()), ((int)firstRail.getY()) 添加到我的 LayoutParams 而不是按钮 x 和 y 中(uno 和 firstRail 是我用于按钮的指南),但不幸的是它把按钮放在与LayoutParams 使用按钮 getX() 和 getY() 方法。
另外,它似乎在移动时缩小图像,这也很奇怪
编辑 2
呃,在打印出来看看这些值到底是什么之后,button1.getX() 和 firstRail.getX() 都返回 0.0。这在使用约束布局时是否可能?
【问题讨论】:
标签: android button imageview layoutparams