我在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];
但是这似乎又回到了不准确的坐标。有人可以帮忙吗?