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