如何使用Matrix确定ImageView中图像的实际位置?

时间:2012-02-09 07:19:04

标签: android matrix android-imageview

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

我尝试从它的ImageMatrix获取x,y位置

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位置..

任何人都可以解释原因吗?以及如何在旋转后获得正确的位置。 感谢...

1 个答案:

答案 0 :(得分:0)

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