ImageView经过SetImageMatrix进行图片缩放家常便饭。可是如何得到当前缩放图片的位置信息呢?spa
用ImageState存储图片绘制信息:code
- 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中的图片四个边的值。get
经过ImageState能够计算点击ImageView对应图片的像素点!it