Einen Canvas mit der canvas.scale-Funktion vergrößern?

9

Ich habe eine lange Methode onDraw implementiert, die einen Satz Rechtecke zeichnet. Die Rechtecke sind zu klein und ich möchte, dass sie größer erscheinen. Aber leider kann ich die Rechteckkoordinaten nicht ändern, weil sie in einer Datenbank gespeichert sind. Gibt es eine Möglichkeit, die Leinwand mit canvas.scale() ? Zu vergrößern?

    
Ruby 12.11.2012, 17:24
quelle

1 Antwort

18

Ich werde diese Antwort vorreden, indem ich sage, dass Sie alles bei 0,0 zeichnen müssen und es dann skalieren und es schließlich übersetzen müssen, um sich richtig zu verhalten.

Führen Sie einfach Folgendes in Ihrer onDraw-Methode aus:

%Vor%

xScale schrumpft oder dehnt sich in X-Richtung, yScale schrumpft oder dehnt sich in Y-Richtung.

1.0 ist der Standardwert für diese Werte, also würde 2.0 ihn doppelt und 0.5 würde ihn um die Hälfte verkleinern.

Beispiel:

%Vor%

Dadurch wird ein Rechteck mit der Länge 5,0 und der Breite 5,0 gezeichnet, für Länge und Breite auf 2,5 skaliert und dann auf (50, 50) verschoben.

Das Ergebnis ist ein Rechteck, das gezeichnet wird, als ob Sie dies getan hätten:

%Vor%

Ich hoffe, das hilft!

    
Michael Dotson 13.11.2012 18:20
quelle

Tags und Links