ImageView的Matrix能夠獲得的神馬

ImageView經過SetImageMatrix進行圖片縮放家常便飯。可是如何得到當前縮放圖片的位置信息呢?spa

用ImageState存儲圖片繪製信息:code

 
  1. public class SubwayMapState { 
  2.     private float left; 
  3.     private float top; 
  4.     private float right; 
  5.     private float bottom; 

而後獲取ImageView的matrix,根據matrix的getValues得到3x3矩陣。圖片

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

這樣,mapState中存放的是mImageViewMap中的圖片四個邊的值。get

經過ImageState能夠計算點擊ImageView對應圖片的像素點!it

相關文章
相關標籤/搜索