2017-07-26 89 views
0

我正在嘗試創建一個將在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。這甚至可以使用約束佈局?

回答

1

嘗試:

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

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

而且記住,調整圖像的,如果你有一些填充屬性添加到您的ImageView成XML

+0

甜可能發生的事情!它似乎有效。我做了,但是取出' - whatImage [0] .getWidth()/ 2',因爲那個部分在不需要和setY()的第二部分一起扔到左邊。是的,感謝您在關於填充的部分中添加內容。 – cjnash