2017-02-03 8 views
1

Я пытаюсь анимировать ImageButton так, чтобы он двигался немного каждый раз, когда его щелкали. По некоторым причинам анимация работает только один раз.Анимация работает только один раз

Код:

public void ballClicked(View v) { 

     imgBtn.clearAnimation(); 
     imgBtn.animate().translationX(50).setDuration(500).start(); 
     imgBtn.animate().translationY(50).setDuration(500).start(); 

     oldX = oldX+50; 
     oldY = oldY+50; 
     imgBtn.setClickable(false); 

     // Using this as Animation Listener doesn't trigger when the animation finish 
     new Handler().postDelayed(new Runnable() { 
      public void run() { 
       imgBtn.setX((float)oldX+50); 
       imgBtn.setY((float)oldY+50); 
       imgBtn.setClickable(true); 
      } 
     }, 500); 

    }` 
+0

do u хочет оживить в зависимости от времени или в соответствии с кликом. Должны ли появляться события определенного времени или когда пользователь нажимает? – W4R10CK

+0

@Slamit проверить мой ответ^_^ –

+0

Я хочу анимировать по клику. пост-задержка здесь, так как я не могу заставить обработчик анимации работать здесь, если бы он работал над другим классом ... @Charu, я попробую, чтобы после завершения работы Adroid Studio :( – Slamit

ответ

1

Это будет работать!

public void ballClicked(View v) { 

    imgBtn.clearAnimation(); 

    oldX = oldX + 50; 
    oldY = oldY + 50; 

    imgBtn.animate().translationX(oldX).setDuration(500).start(); 
    imgBtn.animate().translationY(oldY).setDuration(500).start(); 

    new Handler().postDelayed(new Runnable() { 
     public void run() { 
      imgBtn.setX((float) oldX + 50); 
      imgBtn.setY((float) oldY + 50); 

     } 
    }, 500); 


} 
+0

Это означало бы, что принятое значение by translationX основывается на исходной позиции, это не влияет на меня, но я постараюсь. – Slamit

+0

@ Исследуйте это, и он должен двигаться, чтобы попытаться и сообщить мне, что вы сделали, было вторым ходом, а другие движения были для так что вы не увидите никакой анимации сразу после первого. –

+1

Хорошо, прочитав документ, я получаю его (я должен его чаще всего ...): свойство translationX быть анимированным до указанного значения. но моя координация там. Спасибо за помощь. Ставки будут в переводе BYX в моем случае. – Slamit

Смежные вопросы