私はこの問題の解決策を1日以上探していましたが、ここでの答えでさえ、何の助けにもなりません。ドキュメントも何も説明していません。
別のオブジェクトの方向に回転させようとしているだけです。問題は、ビットマップが固定点を中心に回転するのではなく、ビットマップ(0,0)を中心に回転することです。
これが私が問題を抱えているコードです:
Matrix mtx = new Matrix();
mtx.reset();
mtx.preTranslate(-centerX, -centerY);
mtx.setRotate((float)direction, -centerX, -centerY);
mtx.postTranslate(pivotX, pivotY);
Bitmap rotatedBMP = Bitmap.createBitmap(bitmap, 0, 0, spriteWidth, spriteHeight, mtx, true);
this.bitmap = rotatedBMP;
奇妙な部分は、pre
/内の値と。内postTranslate()
のfloat引数をどのように変更するかは問題ではないということsetRotation()
です。誰かが私を助けて正しい方向に押してくれますか?:)
new
編集したマトリックスをリセットする必要はありません。そのすでにアイデンティティ。