2011-08-24 4 views
0

이미지를 클릭하면 애니메이션이 발생하고 (나중에 재설정됩니다) 이미지가 생기고 다시 클릭하면 애니메이션이 시작됩니다. 아웃이 (그냥 리셋하고 다시 시작 마무리 바로 시작. 그래서안드로이드는 일시적으로 setEnabled (false)를 사용합니다.

내가 잘 작동

setEnabled(false) 

를 사용하여 시도, 애니메이션은 이제 어떤 임의의 클릭에 의해 교란 해당 경로까지에 유일한 계속 문제는 ImageView를 다시 활성화하는 것입니다 - 애니메이션이 멈 추면 같은 시간에

여기

내가 지금은 약간의 시간이 경과 한 후 (사실)는, setEnabled를 호출 할 수있는 쉬운 방법이

stopImage.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 

      mpButtonClick.start(); 
      stopImage.setEnabled(false); 

      TranslateAnimation anim = new TranslateAnimation(0f,250 + Math.round(Math.random() * (-700)),0f,-300f); 

       anim.setDuration(4200); 
       anim.setRepeatCount(0); 

      stopImage.startAnimation(anim); 

이 무엇입니까?

+0

교란되지 않음 – Safetylegs

+0

애니메이션이 종료 된 시점을 알 수 있습니까? 우리 애니메이션에 대한 코드를 볼 수 있을까요? – MrZander

+0

@Safetylegs 원본 질문을 편집하여 "위로가 불안정한" – theisenp

답변

2

AnimationListener을 사용하고 setEnabled(true)onAnimationEnd()에서 호출 해 볼 수 있습니다. 이 같은

뭔가 :

stopImage.setOnClickListener(new OnClickListener() 
{ 
    @Override 
    public void onClick(View arg0) 
    { 
     mpButtonClick.start(); 

     TranslateAnimation anim = new TranslateAnimation(0f,250 + Math.round(Math.random() * (-700)),0f,-300f); 

     anim.setDuration(4200); 
     anim.setRepeatCount(0); 
     anim.setAnimationListener(new Animation.AnimationListener() 
     { 
      @Override 
      public void onAnimationStart(Animation animation) 
      { 
       stopImage.setEnabled(false); 
      } 

      @Override 
      public void onAnimationRepeat(Animation animation) 
      { 
      } 

      @Override 
      public void onAnimationEnd(Animation animation) 
      { 
       stopImage.setEnabled(true); 
      } 
     }); 

     stopImage.startAnimation(anim); 
    } 
} 

여기 AnimationListeners에 대한 documentation입니다.

+0

과 같은 오류를 수정하고 완전히 이해할 수 있지만 ... 줄에서 anim.setAnimationListener (새 AnimationListener()) "setAnimationListener (animation .animationlistener)는 인수에 적용 할 수 없습니다 ... 그리고 반복 시작과 끝의 오류 (아마도 관련이 있습니까?) – Safetylegs

+0

AnimationListener 대신 'Animation.AnimationListener'를 사용하면 잘 작동합니다. 내 대답을 업데이트했습니다. – theisenp

+0

예, 매력처럼 작동합니다. 좋은 물건입니다. 감사합니다. – Safetylegs

관련 문제