把ImageView的坐标转换成位图中的坐标

在程序中我想实现拍摄完一张图片后,想要获取图片中人物的眼睛在图片中的坐标。使用OnTouchListener.onTouch(…)方法获得ImageView的坐标。

如何把用户手动点击的位置坐标,及ImageView的坐标转化成位图中的坐标?

给你先参考方法,这里面的方法你肯定能用的上:

ImageView imageView = (ImageView)findViewById(R.id.imageview);
Drawable drawable = imageView.getDrawable();
Rect imageBounds = drawable.getBounds();

//初始化bitmap的宽高
int intrinsicHeight = drawable.getIntrinsicHeight();
int intrinsicWidth = drawable.getIntrinsicWidth();

//可见image的宽高
int scaledHeight = imageBounds.height();
int scaledWidth = imageBounds.width();

//使用fitXY
float heightRatio = intrinsicHeight / scaledHeight;
float widthRatio = intrinsicWidth / scaledWidth;

//获取图像边界值
int scaledImageOffsetX = event.getX() - imageBounds.left;
int scaledImageOffsetY = event.getY() - imageBounds.top;

//根据你图像的缩放比例设置
int originalImageOffsetX = scaledImageOffsetX * widthRatio;
int originalImageOffsetY = scaledImageOffsetY * heightRatio;

触屏得到的坐标只要减去,imageView距左距上距离不就是相对于图片的坐标了吗
如果图片充满了全屏的话,这个距离就是0,不用减,点击的位置xy也是眼睛的坐标了
不知你是不是这个意思

我在API 10+这个环境下,这个方法可以实现:

final float[] getPointerCoords(ImageView view, MotionEvent e)
{
    final int index = e.getActionIndex();
    final float[] coords = new float[] { e.getX(index), e.getY(index) };
    Matrix matrix = new Matrix();
    view.getImageMatrix().invert(matrix);
    matrix.postTranslate(view.getScrollX(), view.getScrollY());
    matrix.mapPoints(coords);
    return coords;
}

楼主问题解决了吗? 我也是一样的问题 。。求解答