我在FrameLayout中包含的ImageView中有一个正方形图像,它是右对齐的(横向布局) . FrameLayout设置为FillParent宽度和高度,ImageView设置为Adjust View Bounds,以便生成的ImageView是一个完美的正方形,每边是横向布局高度的长度,右对齐 . 但是,原始图像比这大 . 我需要在ImageView上找到与自身相关的坐标(即ImageView的左上角是0,0,右下角是显示的宽度和高度坐标),这样我就可以解决了问题 . 点击的点超过了ImageView的中点 . 我最初使用以下方法获取ImageView的大小:

int myImageViewWidth = imageView.getWidth();
int myImageViewHeight = imageView.getHeight();

我已经创建了一个OnTouchListener,在这里我使用了event.getX()和event.getY(),但这似乎返回了相对于图像的原始大小的坐标,而不是显示的大小 . 我也尝试了以下内容:

Matrix m = imageView.getImageMatrix();
float[] values = new float[9];
m.getValues(values);
float relativeX = (event.getX() - values[2]) / values[0];
float relativeY = (event.getY() - values[5]) / values[4];

但是这似乎又回到了不准确的坐标 . 有人可以帮忙吗?