Ich habe über einen Tag nach einer Lösung für dieses Problem gesucht, aber nichts hilft, selbst die Antworten hier. Die Dokumentation erklärt auch nichts.
Ich versuche einfach, eine Drehung in Richtung eines anderen Objekts zu bekommen. Das Problem ist, dass die Bitmap nicht um einen festen Punkt gedreht wird, sondern um die Bitmaps (0,0).
Hier ist der Code, mit dem ich Probleme habe:
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;
Der seltsame Teil ist, dass es keine Rolle spielt, wie ich die Werte in pre
/ postTranslate()
und die float-Argumente in ändere setRotation()
. Kann mir bitte jemand helfen und mich in die richtige Richtung drängen? :) :)
new
bearbeitete Matrix nicht zurücksetzen . Es ist schon die Identität.