2017-03-24 5 views
0

Guten Tag, meine erste Frage hier nach 3 * Stunden verschwenden. Ich habe Dutzende von verschiedenen Beiträgen mit ähnlichen Fragen und einer kleinen Breite von Antworten überprüft.Rotieren einer Bitmap um Zentrum auf Android

Ich bin der Gestaltung zur Zeit eine Funktion, die eine Bitmap und einen Winkel nimmt und gibt eine gedrehte Version, für mein Raumschiff android Spiel

public static Bitmap RotateBitmap(Bitmap source, float angle){ 


    Matrix matrix = new Matrix(); 

    matrix.setRotate(angle, source.getWidth()/2, source.getHeight()/2); 

    return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true); 

} 

i verschiedene Möglichkeiten versucht haben, das Mischen übersetzen, Post und Pre rotieren Methoden, aber alle erwiesen sich als nicht wirksam. Ich muss zugeben, dass ich nur begrenztes Wissen über Matrix habe, aber Android-Entwicklerquellen scheinen mir klar zu sein, doch jede Methode, die ich ausprobiert habe, macht irgendetwas bezüglich des Drehpunkts. Die Rotation geschieht immer, aber effektiv mein Schiff zu anderen Flüche

Vielen Dank im Voraus ^^

Antwort

1

konnte nicht mit dieser Funktion verwalten Verschieben so landete ich mit dem gleichen Effekt macht eine andere auf.

public void rotate(Bitmap paramBitmap, float angle, Canvas canvas, int x, int y) 
{ 
    canvas.save(); 
    canvas.translate(x, y); 
    canvas.rotate(angle); 
    canvas.translate(-paramBitmap.getWidth()/2, -paramBitmap.getHeight()/2); 
    canvas.drawBitmap(paramBitmap, 0, 0, new Paint()); 
    canvas.restore(); 

} 

Es dreht die Leinwand statt