Android - Farbe gedrehten bitmap in einer bestimmten Position auf Leinwand

Ok vielleicht bin ich etwas fehlt hier, aber ich bin stecken für Stunden. Ich mache eine app, wo der Benutzer Malt eine dimension-Linie über ein Bild. Jetzt möchte ich zu malen, auch einige Auswahl-Punkte, die zeigen, dass die Zeile ausgewählt ist. Diese Punkte sind eine bestimmte bitmap, muss am Ende der Zeile (nach dem Pfeil) und dreht sich entsprechend auf den Pfeil. Ich habe eine Klasse angelegt DrawSelectionPoint, erstreckt Ansicht, und ich kann drehen das bitmap mit so etwas wie dies:

selectionPoint = BitmapFactory.decodeResource(context.getResources(),
                    R.drawable.selectionpoint);
Matrix matrix = new Matrix();
        matrix.postRotate((float)Math.toDegrees(angle));        
canvas.drawBitmap(selectionPoint, matrix, null);

(wo der Winkel ist der Winkel, den die Linie), so ist meine bitmap gedreht wird, wie ich es möchte, aber es ist gemalt auf Punkt 0,0 (Links oben auf dem Bildschirm).

Wenn ich so etwas wie

canvas.save();

canvas.rotate();

canvas.drawBitmap(selectionPoint, x, y, null);

canvas.restore(); 

dann finde ich es zu schwer zum zeichnen der bitmap auf den genauen Standort möchte ich (da ich die Auslosung auf einer Leinwand gedreht, die ich drehen wieder danach). Ich habe versucht, einige der euklidischen Transformationen rotation, aber ich hatte kein Glück.

Gibt es eine Möglichkeit zum anwenden der matrix-rotation und auch die Punkte, wo ich noch die bitmap gezeichnet werden? Vielen Dank im Voraus!

InformationsquelleAutor george | 2012-05-26
Schreibe einen Kommentar