2017-07-26 16 views
0

ボタンのonClickに画像を表示するアクティビティを作成しようとしています。これまでは、ボタンをクリックするとアプリケーションのイメージが消えてしまいましたが、押されたボタンの上にイメージを表示する必要がありました。ボタンの位置に基づいてImageViewの位置を動的に調整する

私の理解から、あなたは私がしようとしてきたLayoutParamsを使用して、このことについてに行きたいが、それは私のButton.getX()getY()から間違った値を取得しているようです。ここに私のコードは次のとおりです。私はちょうどFYI、周りに自分の場所を変更したいので

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)としてキャストしなければならない。何らかの丸め誤差があるかもしれませんが、getX()getY()は、半分または四分の一のピクセル値を返します。

おかげ

EDITは

ジャスト(UNOとfirstRailは私がボタンに使用するガイドラインをしている)、代わりにボタンのxとyの私のLayoutParams((int)uno.getX()), ((int)firstRail.getY())を追加しようとしましたが、それは残念ながら入れgetX()getY()のボタンを持つLayoutParamsと同じ正確な場所にあるボタン。

はまた、また、奇数である

EDIT 2

これらの値が正確に何を見にに印刷した後うわ、button1.getX()、それはそれを移動したときの画像を縮小するようで、 firstRail.getX()はどちらも0.0を返します。 Constraintレイアウトを使用しているときでもこれは可能ですか?

答えて

1

試してみてください。

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

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

また、あなたは、いくつかのパディング属性は、XML

+0

スウィートにあなたのImageViewのに追加されている場合は起こった可能性があり、画像のサイズを変更することに留意してください!それは働いたようだった。しかし、setY()の2番目の部分と一緒である必要がないときに、その部分が左にスローしていたので、 ' - whatImage [0] .getWidth()/ 2'を取り出しました。そして、はい、パディングについての部分を追加してくれてありがとう。 – cjnash

関連する問題