参考のために、これらの他の 2 つの質問を参照してください。
ImageViewで画像の表示サイズを取得しようとしています
スケーリングされた画像のサイズを取得できるようになりましたが、画像ビュー内のスケーリングされた画像の原点 (0,0) も知りたいです。言い換えると、画像 #1 内のどの x,y 位置が画像 #2 の 0,0 に対応するでしょうか?
http://image.noelshack.com/fichiers/2013/06/1360144144-sans-titre.png
参考のために、これらの他の 2 つの質問を参照してください。
ImageViewで画像の表示サイズを取得しようとしています
スケーリングされた画像のサイズを取得できるようになりましたが、画像ビュー内のスケーリングされた画像の原点 (0,0) も知りたいです。言い換えると、画像 #1 内のどの x,y 位置が画像 #2 の 0,0 に対応するでしょうか?
http://image.noelshack.com/fichiers/2013/06/1360144144-sans-titre.png
ドローアブルの (0,0) が imageView の (x,y) にどのように対応するかを知りたい場合は、imageView の変換マトリックスを使用してポイントをマッピングできます。
float[] drawableCoords = new float[] {0, 0};
imageView.getImageMatrix().mapPoints(drawableCoords);
float onViewX = drawableCoords[0];
float onViewY = drawableCoords[1];
プロセスを逆にすることもできます(逆行列を作成し、その上にポイントをマッピングすることにより、imageView座標から描画可能な座標にマッピングします
float[] viewCoords= new float[] {0, 0};
Matrix invertedMatrix = new Matrix()
imageView.getImageMatrix().invert(invertedMatrix);
invertedMatrix.mapPoints(viewCoords);
float onDrawableX= viewCoords[0];
float onDrawableY= viewCoords[1];
drawable が imageview より小さい/大きい場合、変換された座標が負の座標値を持つ場合があることに注意してください。
イメージ #1 はイメージ #2 の親ビューであると想定しています。
int x = image2.getLeft();
int y = image2.getTop();
image2 の親ビューである image1 を基準としたピクセル座標の x、y を返します。