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!
Du musst angemeldet sein, um einen Kommentar abzugeben.
nehme an, Sie wollen zeichnen Sie die bitmap, wo die center der bitmap wird in (px,py) canvas-Koordinaten. Habe eine member-variable
und in Ihrer onDraw: