我在我的 MapView 中添加了旋转,除了触摸之外它运行良好。
我按照这个代码链接旋转视图和计数器旋转触摸。
现在我的问题。
即使当前没有旋转,触摸位置的计算也是错误的。例如,在 roation = 0 期间,y 坐标向下移动。
原因是 canvas.getMatrix().invert(mMatrix);
即使我不旋转画布,似乎也得到了错误的倒置矩阵。
@Override
protected void dispatchDraw(Canvas canvas)
{
canvas.save(Canvas.MATRIX_SAVE_FLAG);
//canvas.rotate(rotation, getWidth() * 0.5f, getHeight() * 0.5f);
canvas.getMatrix().invert(mMatrix);
Log.d("matrix", mMatrix.toString());
super.dispatchDraw(canvas);
canvas.restore();
}
日志说矩阵是:(在没有旋转期间) Matrix{[1.0, -0.0, 0.0][-0.0, 1.0, -38.0][0.0, 0.0, 1.0]}
那么问题出在哪里?