ImageView的Matrix如何获得当前缩放图片的位置

作者: 2011/6/6 10:09:54

  ImageView通过SetImageMatrix进行图片缩放屡见不鲜。但是如何获得当前缩放图片的位置信息呢?

  用ImageState存储图片绘制信息:

  public class SubwayMapState { private float left; private float top; private float right; private float bottom; }

  然后获取ImageView的matrix,根据matrix的getValues获得3x3矩阵。

  Matrix matrix = mImageViewMap.getImageMatrix(); Rect rect = mImageViewMap.getDrawable().getBounds(); float[] values = new float[9]; matrix.getValues(values); ImageState mapState = new ImageState(); mapState.setLeft(values[2]); mapState.setTop(values[5]); mapState.setRight(mapState.getLeft() + rect.width() * values[0]); mapState.setBottom(mapState.getTop() + rect.height() * values[0]);

  这样,mapState中存放的是mImageViewMap中的图片四个边的值。

  通过ImageState可以计算点击ImageView对应图片的像素点!

特别推荐

玩家留言 跟帖评论
查看更多评论