はじめまして。androidアプリについての質問です。


サイトに書き込みするのは初めてですので、分かり難い点や至らない点などはご容赦下さい。

[やりたいこと]
画像をタッチした場所に別の画像を重ねて表示したい。

[質問]
FrameLayout上に画像1を表示し、touchイベントで画像2を表示することができました。
しかし、タッチした場所に表示することができません。
タッチした位置情報はMotionEventで取得できているのですが、取得した位置に表示する
ところがうまくいきません。
どなたか分かる方がいらっしゃったらご教授下さい。

画像2の位置を設定しているソースは以下のように記述しています。
int x = (int)event.getRawX();
int y = (int)event.getRawY();
int left = iv2.getLeft() + (x - oldx);
int top = iv2.getTop() + (y - oldy);
imageview2.layout(left, top, left + iv2.getWidth(), top + iv2.getHeight());

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/11/10 01:30:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:oil999 No.1

回答回数1728ベストアンサー獲得回数320

ポイント200pt

以下のようにしてみてください。

int x = (int)event.getRawX();
int y = (int)event.getRawY();

int diffX = oldx - x;
int diffY = oldy - y;
currentX -= diffX;
currentY -= diffY;
view.layout(currentX, currentY, currentX + view.getWidth(), currentY + view.getHeight());
id:newprogramer

回答ありがとうございます。
しかし、以下の部分はビルドエラーになります。
currentX -= diffX;
currentY -= diffY;

また、view.layoutを設定すると画像2が表示されなくなりました。

2012/11/03 13:36:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません