2012-03-27 10 views
0

Ich habe ein Problem mit bewegten Animation. Ich möchte Animationen erstellen, die beginnen, wenn ich auf einen Bildschirm und sie beginnt von berührten Ort und gehe zum Ende Ort wie auf diesem Bild: enter image description hereAnimation Sinusoid in Android

Der Endpunkt ist konstant. Wie kann ich diese sinusförmige Bewegung machen?

edit1: Ich möchte klicken und wenn ich klicke, zeige Bild und er geht diesen Weg bis zum Ende Ort. Ich klicke und ziehe dieses Bild nicht. Dieses Bild muss zeigen und geht an diesen Ort ohne meine Hilfe. Ich berühre nur den Bildschirm. Wie kann ich das? Ich habe ein Problem mit bewegten Animationen. Ich möchte Animationen erstellen, die beginnen, wenn ich auf einen Bildschirm und sie beginnt von berührten Ort und gehen Sie zum Ende Ort wie auf diesem Bild:

Der Endpunkt ist konstant. Wie kann ich diese sinusförmige Bewegung machen?

edit1: Ich möchte klicken und wenn ich klicke, zeige Bild und er geht diesen Weg bis zum Ende Ort. Ich klicke und ziehe dieses Bild nicht. Dieses Bild muss zeigen und geht an diesen Ort ohne meine Hilfe. Ich berühre nur den Bildschirm. Wie kann ich das machen?

Antwort

0

ich so etwas wie dies schrieb, die gekrümmte Animation erlaubt, können Sie die vollständige Antwort sehen (und Arbeitscode) hier: Problem to achieve curved animation

Es sollte nicht allzu schwierig sein, entweder Kette eine Anzahl derer zusammen, oder ändern der Algorithmus, um eine kubische (oder höhere) Funktion zu verwenden, um mehrere Kurven zu erzeugen.

Einziger Nachteil ist, dass wegen der Bezier-Kurve, es keine Garantie gibt, dass der Pfad tatsächlich durch den Mittelpunkt geht, den Sie ihm geben. Wenn dies wieder ein Problem ist, können Sie den Bezier-Algorithmus, den ich im obigen Beispiel verwende, leicht durch etwas ersetzen, das Ihren Anforderungen besser entspricht.

0

Überprüfen Sie die Quellen von TranslationAnimation, wo die Übersetzung erfolgt. Erstellen Sie dann Ihre Funktion, die die Sinusfunktion auf der Linie von Anfang bis Ende abbildet. Sie könnten damit beginnen, eine horizontale Linie mit der Länge dist (Start, Ende) zu setzen, die bei (Start) beginnt, Sinus darauf abbildet und sie dann um Ihren Startpunkt dreht.