Zeichnen eines Rechtecks ​​mit einer Bewegungsgeste

7

Ich versuche ein Rechteck zu erstellen, aber das passiert, wenn ich mich von Anfangskoordinaten zu den Endkoordinaten bewege.

, eigentlich möchte ich den Fortschritt zeigen, wenn sich der Benutzer auch von einem Punkt zum anderen bewegt. Das wäre es, was ich gerne hätte. .

Code: -

%Vor%

Bearbeiten Was ich tun möchte, ist den Fortschritt anzuzeigen, d. h. wenn der Benutzer seinen Finger bewegt, sollte die Form gezeichnet werden.

Vorschläge / Beispiele / Links alles wird geschätzt.

    
Gauraw Yadav 21.12.2012, 09:29
quelle

5 Antworten

9

Sie aktualisieren die Leinwand im onTouch() -Ereignis direkt, ohne sie vorher zu löschen. Dies ist nicht die vermeintliche Art, etwas in einer Ansicht zu zeichnen (vorausgesetzt, das ist was du willst).

Stattdessen sollten Sie die Anfangs- und aktuellen Koordinaten des Rechtecks ​​speichern und sie im onDraw() -Ereignis verwenden, um das tatsächliche Rechteck zu zeichnen (nachdem Adnroid den ungültigen Teil des Canvas für Sie gelöscht hat). Android wird dieses Ereignis ausgeben, wenn die Zeichenfläche neu gezeichnet werden muss. Sie müssen also im onTouch() -Ereignis angeben, dass dies erforderlich ist, indem Sie die invalidate() -Methode verwenden:

%Vor%     
Veger 21.12.2012 09:48
quelle
6

Reinigen Sie die Leinwand zwischen zwei Rechteck? Fügen Sie eine Funktion wie diese hinzu:

%Vor%     
Melki 30.12.2012 15:08
quelle
3

Sorry Lieber, ich gebe dir eine ganze Aktivität, die ich benutze und zeichne direkt auf Leinwand.

%Vor%

In diesem BibleHelper ist Helper-Klasse, die für die Anzeige einiger Nachrichten und Protokolle verwendet.

    
Zala Janaksinh 04.01.2013 04:29
quelle
2
%Vor%

Dieser Code verursacht es. Weil Sie hier viele Rechtecke erstellen. Stattdessen haben Sie in onDraw(Canvas canvas) die drawRect-Methode und verwenden für alle Ereignisse invalidate. Hoffe, das hilft.

    
Vinay 21.12.2012 09:48
quelle
2

Wenn ich Sie richtig verstehe, möchten Sie, dass der Benutzer das Rechteck auf dem Bildschirm zeichnet und Sie es dann auf dem Bildschirm zeichnen.

Ich denke, Sie könnten einfach einen Punkt zeichnen, an dem der Benutzer drückt, nur um dem Benutzer eine Rückmeldung zu geben, und wenn er mit dem Zeichnen fertig ist, ersetzen Sie ihn durch das Rechteck

Oder zeichnen Sie die Linien des Rechtecks, so dass Benutzer beginnt zu zeichnen und Sie haben eine Linie vom Anfang bis zu seinem Finger, wenn Benutzer die Richtung ändert, starten Sie eine neue Zeile von wo der Benutzer die Richtung und den Finger änderte, dann wenn der Benutzer zurück zum Anfang haben Sie ein Rechteck als 4 Linien zeichnen

    
Marcio Covre 03.01.2013 18:18
quelle