2012-02-09 63 views
2

我有缩放类型ScaleType.MATRIX的ImageView。 用户可以旋转,缩放和拖动它里面的图像。 我想知道的是用户执行更改后的实际图像x,y位置?如何使用Matrix确定ImageView中图像的实际位置?

我尝试一下X,从中y位置是ImageMatrix

Matrix m = new Matrix(); 
m.set(imgView.getImageMatrix()); 
float[] value = new float[9]; 
m.getValues(value); 
Log.d("cutt matrix~~~~~~~~", 
     value[Matrix.MSCALE_X] + " ## " 
     + value[Matrix.MSCALE_Y] + " ## " 
     + value[Matrix.MSKEW_X] + " ## " 
     + value[Matrix.MSKEW_Y] + " ## " 
     + value[Matrix.MTRANS_X] + " ## " 
     + value[Matrix.MTRANS_Y] + " ## " 
     + value[Matrix.MPERSP_0] + " ## " 
     + value[Matrix.MPERSP_1] + " ## " 
     + value[Matrix.MPERSP_2]); 

如果用户没有旋转图像,value[Matrix.MTRANS_X] & value[Matrix.MTRANS_Y]给我x,y位置正确.. 但是,如果用户旋转图像莫名其妙x,y的位置..

任何人都可以解释为什么?旋转后如何获得正确的位置。 谢谢...

回答

0

尝试记录一个参考点,如左上角(x,y),并在每次更改图像时更新其更改。

相关问题