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