ImageView Animationen

  • Antworten:0
xall
  • Forum-Beiträge: 1

16.02.2014, 16:41:59 via Website

Hallo,
Ich bin gerade dabei meine erste etwas aufwendigere App zu schreiben (Ein Spiel Rundenbasiert ähnlich wie Pokemon) ist halt dazu da um etwas rumzutesten was so möglich ist.

Nun, das Spiel ansich klappt eigentlich, bin nun dabei ein paar Animationen einzufügen. Jetzt gerade will ich eigentlich eine recht simple sache machen an der ich aber schon scheiter.

Ich versuche mein ImageView von der Startposition aus animiert nach rechts zu schieben, und dann dann animiert wieder zur start position.
und danach halt ganz normal weiter machen
Nun wenn ich es mit diesem Befehl hier ausführe:
1if(vor==1){
2moveLefttoRight = new TranslateAnimation(0, 200, 0, 0);
3}else{ //entweder den hier
4moveLefttoRight = new TranslateAnimation(0, -200, 0, 0);
5} //oder den hier je nachdem wie die methode aufgerufen wird
6moveLefttoRight.setDuration(1000);
7moveLefttoRight.setFillAfter(true);

dann wird der Imageview beim ersten aufrufen nach links verschoben (gar nicht erst nach rechts) und beim zweiten aufruf erscheint der plötzlich an seiner start position und wird dann wieder nach links geschoben.

Ich rufe immer erst die Funktion mit vor==1 auf und dann mit 0

Danke für eure hilfe!

ps: ich hätte euch gerne mehr vom code gezeigt, leider habe ich durch so viel rumtesten nun irgendwas total unverständliches da stehen mit mehreren threads und keine Ahnung wirklich wie ich das aufrufe mehr, aber im endeffekt habe ich immer diesen code da oben aufgerufen

EDIT:

also ich hhabe nun etwas weiter gemacht und bin nun soweit das ich das hier nutze:
1moveLefttoRight.setAnimationListener(new AnimationListener(){
2 public void onAnimationStart(Animation a){}
3 public void onAnimationRepeat(Animation a){
4
5 }
6
7 public void onAnimationEnd(Animation a){
8
9
10});

ich rufe die funktion einfach nochmal in "onAnimationEnd" auf und gebe dadrin an das ich danach fertig bin.

Soweit so gut.
Nun wird das Bild aber nach rechts verschoben. Springt zum ursprung zurück und verschiebt sich dann nochmal 200 nach links. wie bekomm ich es nun hin das der von der NEUEN position (nach dem ersten mal der Funktion ausführen) die Animation ausführt nicht vom Ursprung aus?

— geändert am 16.02.2014, 20:59:53

Antworten