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对应图片的像素点!
654

被折叠的 条评论
为什么被折叠?



