0

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();
}

ログによると、マトリックスは次のようになります。

では、どこに問題があるのでしょうか。

4

1 に答える 1