1

画像をズームした後、画像に対する座標を計算する方法は? 画像をズームするには、次の URL に従いました: https://github.com/MikeOrtiz/TouchImageView/blob/master/src/com/example/touch/TouchImageView.java

ズームする前に特定のポイントで画像に触れると、対応する値は

point:(3,2)
top left corner of image:(0,0)
top left corner of screen:(0,0)
scale factors:(1.25,0.98)

画像をズームした後:

画像の左上隅が画面の左上隅と一致するまで画像をドラッグし、画像を正確に同じタッチポイントで(ピンチする前に)タッチすると、

point:(540,220)
top left corner of image:(0,0)
top left corner of screen:(0,0)
scale factors:(4.78,2.67)

画像の右上隅が画面の右上隅と一致するまで画像をドラッグし、画像を正確に同じタッチポイントで(ピンチする前に)タッチすると、

point:(1080,340)
top left corner of screen:(0,0)
top left corner of image:(-2430,0)
scale factors:(4.78,2.67)

画像の左下隅が画面の左下隅と一致するまで画像をドラッグし、画像を正確に同じタッチポイントで(ピンチする前に)タッチすると、

point:(670,80)
top left corner of screen:(0,0)
top left corner of image:(0,-890)
scale factors:(4.78,2.67)

画像の右下隅が画面の右下隅と一致するまで画像をドラッグし、画像を正確に同じタッチポイントで(ピンチする前に)タッチすると、

point:(456,274)
top left corner of screen:(0,0)
top left corner of image:(-2430,-890)
scale factors:(4.78,2.67)

画面上に画像を設定する場合 [コーナーを設定しない]

point:(743,146)
top left corner of screen:(0,0)
top left corner of image:(-1280,-423)
scale factors:(4.78,2.67)

上記のすべてのシナリオで、タッチイベントの座標を次のように取得しています

x_cord=event.getX();
y_cord=event.getY();

私が得ているタッチポイントは、画面に関するものです。

画像に従ってタッチポイントを計算するにはどうすればよいですか?

ありがとうございます。

4

2 に答える 2

1

画像サイズに応じて相対点を計算することで計算できます

float[] values = new float[9];
matrix.getValues(values);
x_coord = ((e.getX() - values[2])*scaleX )/values[0];
y_coord= ((e.gety() - values[5])*scaleY )/ values[4];
于 2012-11-20T10:40:48.907 に答える