Android-Zeichnung eine Linie zu Folgen, Ihre finger
Was ich will zu tun ist, um eine Linie zu zeichnen, Folgen Sie meinem finger. Ich habe
eine benutzerdefinierte Ansicht, und ich habe eine onTouchEvent()
funktioniert.
Kann ich zeichnen Sie eine statische Linie in der onDraw()
Methode ohne viel Mühe.
Ich bin mir nicht wirklich sicher, wie Sie Sie, um die Linie zu zeichnen, wie meine finger bewegt, obwohl.
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
Log.e(TAG, " - DOWN -");
Log.e(TAG, " getX: " + event.getX());
break;
}
case MotionEvent.ACTION_UP: {
Log.e(TAG, " - UP -");
Log.e(TAG, " getX: " + event.getX());
break;
}
}
return true;
}
Tipps, die Sie Jungs, die es bisher getan haben es eine Weile geben kann?
Muss ich die Koordinaten auf der onTouchEvent()
und ständig erlöschen die anzeigen
also der kleine Liniensegmente zeichnen?
In dem Ende ich will einfach nur, um der Lage sein, im Grunde doodle auf dem Bildschirm mit dem finger für
dieses experiment.
InformationsquelleAutor der Frage jacklin | 2010-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie nur die Verfolgung der up-und down-events. Verfolgen Sie die ACTION_MOVE-event zu. Beachten Sie, dass Sie verfolgt kontinuierlich, auch wenn die person, die die finger nicht offenbar Bewegung. Ihr code sollte wie folgt Aussehen:
ACTION_DOWN: Speichere position.
ACTION_MOVE: Wenn sich die position unterscheidet sich von gespeicherten position, dann ziehen Sie eine Linie von der gespeicherten position zur aktuellen position, und aktualisieren gespeicherte position zu aktuellen.
ACTION_UP: Stop.
In der ACTION_MOVE bisschen, es könnte eine gute Idee sein, zu überprüfen, ob die position ist mindestens 2 oder 3 Pixel Weg von der gespeicherten position. Wenn Sie zum speichern der plot-Punkte, so dass Sie etwas tun können, mit den Daten, die später dann vielleicht erhöhen, die 10 Pixel, damit Sie nicht am Ende mit Hunderten von Punkten für eine einfache Linie.
InformationsquelleAutor der Antwort Andrew Smith
Hier ist, was ich am Ende machen. Ich hoffe, dies hilft einigen anderen Anfänger da draußen loszulegen.
Habe ich eine Sprite-Klasse, die Sie repräsentiert das Objekt, ich möchte nun auf den Bildschirm:
Dann habe ich ein main-game-loop. Durchläuft, und fordert mein mainPanel die render-und update-Methoden, die wie folgt Aussehen:
Die position, wo die sprite-Bewegung behandelt, die im motion-event-capture:
Hoffentlich hilfreich ist. Wenn ich getrimmt zu viel und es ist etwas, das Sie nicht bekommen, lass es mich wissen.
Nächsten Schritt, so dass das Objekt Folgen Sie der Linie!
InformationsquelleAutor der Antwort jacklin
Einem touch-Ereignis zugeordnet ist, eine Liste der Zeiger zählt abrufbar, wie die folgenden:
iteriert und diese Punkte zeichnen kann dazu führen, eine kontinuierliche
Linie erscheinen
Vorausgesetzt
paint
ist bereits festgelegt undc
ist die Leinwand, die kann gesperrt werden müssen (Z.B. - in einer multithread-Anwendung), vor Zeichnung darauf.InformationsquelleAutor der Antwort heyNow
Für Neulinge dieser code wird Ihnen helfen, zu erstellen doodle Bild und exportieren Sie es in das Png-Bild
hier Ist die Vollständige CODE und diese die Aktivität Klasse enthält eine View-Klasse auch..
InformationsquelleAutor der Antwort sarath kumar
Schauen Sie sich auch den Java-Pfad-Klasse. Sie können diese verwenden, um ziehen Weg...wie Sie sich bewegen Sie Ihren finger über den Bildschirm. mit jedem update(wie immer Sie diese umsetzen - jeder so viele Pixel vom letzten update zum Beispiel), fügen Sie die x -, y-Koordinate auf Ihrem Weg und neu Rendern den Gesamt Pfad durch eine Schleife. nur eine Idee, dass ich spielen, um mit jetzt.
InformationsquelleAutor der Antwort cspam
Seine schon eine Weile, aber dieses Thema wird immer noch einige Ansichten, so dass ich dachte, ich poste einige hilfreiche Sachen:
Tutorial, wie man ein Objekt folgt einer Linie:
http://www.rengelbert.com/tutorial.php?id=182
Dies ist eine gute Kostenlose Spiel-engine, die das obige tutorial benutzt:
http://libgdx.badlogicgames.com/
Hoffe, das jemand hilft!
InformationsquelleAutor der Antwort jacklin