View组件在应用了Matrix后,如何获取其在屏幕上的位置或宽度?

public class ImageState {  
              @Override
              public String toString() {
                      // TODO Auto-generated method stub
                      return "["+left+","+top+","+right+","+bottom+"] ("+(right-left)+","+(bottom-top)+")" ;//super.toString();
              }
              private float left;  
              public float getLeft() {
                      return left;
              }
              public void setLeft(float left) {
                      this.left = left;
              }
              public float getTop() {
                      return top;
              }
              public void setTop(float top) {
                      this.top = top;
              }
              public float getRight() {
                      return right;
              }
              public void setRight(float right) {
                      this.right = right;
              }
              public float getBottom() {
                      return bottom;
              }
              public void setBottom(float bottom) {
                      this.bottom = bottom;
              }
              private float top;  
              private float right;  
              private float bottom;  
        }
        //然后获取ImageView的matrix,根据matrix的getValues获得3x3矩阵。

 

Rect rect = view.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]);  
        //这样,ImageState中存放的是mImageViewMap中的图片四个边的值。
        System.out.println("imgRect:"+mapState.toString());
posted @ 2012-10-02 18:15  日光之下无新事  阅读(509)  评论(0编辑  收藏  举报