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();
}
ログによると、マトリックスは次のようになります。
では、どこに問題があるのでしょうか。