人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

はじめまして。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());

●質問者: newprogramer
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● oil999
●200ポイント

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

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());

newprogramerさんのコメント
回答ありがとうございます。 しかし、以下の部分はビルドエラーになります。 currentX -= diffX; currentY -= diffY; また、view.layoutを設定すると画像2が表示されなくなりました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ