2017-11-14 1 views

답변

0

애니메이션 수신기를 사용하여 애니메이션 완료 시점을 확인할 수 있습니다. 다음과 같은 것 :

Animation a = AnimationUtils.loadAnimation(this.getContext(), R.anim.animation); 

    a.setAnimationListener(new Animation.AnimationListener() { 
     @Override 
     public void onAnimationStart(Animation animation) { 

     } 

     @Override 
     public void onAnimationEnd(Animation animation) { 
      if(receivedMessage == true){ 
       startNextAnimation(); 
      } 
     } 

     @Override 
     public void onAnimationRepeat(Animation animation) { 

     } 
    }); 
+0

startNextAnimation()은 다음 애니메이션을 어떻게 선택해야합니까? 예를 들어 새 메시지를 받으면 차단 대기열에 애니메이션을 넣고 거기에서 선택할 수 있습니다. 그런 다음 메서드가 호출 될 때 다음 메시지가 아직 도착하지 않으면 어떻게됩니까? 나는 그것이 작동하지 않을 것이라고 생각한다. – InfiniteSnow

+0

리스너를 만들 수있다. onMessageReceived() 및 일어날 일에 대한 논리를 처리합니다. onMessageReceived에서 "receivedMessage = true"로 설정합니다. 현재 애니메이션을 계속 진행할 수 있습니다. 애니메이션이 이미 완료된 경우 메시지를 받으면 다음 애니메이션을 시작하는 것이 좋습니다. (애니메이션을 추적하고 애니메이션이 발생하지 않으면 null로 설정할 수 있습니다.) 예 : if (currentAnimation == null) startNewAnimation() –

관련 문제