마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

애니메이션 실행중에 다른 이벤트를 받을 수 있나요 ??

0 추천
1번버튼을 눌렀을때 해당 애니메이션이 실행되는 도중 2번버튼을 눌러 다른애니메이션을 실행시킬 수 있을까요?

 (1번이 실행되고있고 2번이 뒤늦게 실행)

 

또는 애니메이션 실행중에 다른 이벤트(클릭이라던지)를 받을 수 있나요 ?? 어떻게할수있을까요?
익명사용자 님이 2013년 8월 19일 질문

1개의 답변

0 추천
 
채택된 답변

애니메이션리스너를 달면 다음과 같은 콜백을 받을 수 있습니다.

view.getAnimation().setAnimationListener(new AnimationListener() {
 
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
 
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
 
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
}
});
 
onAnimationStart 쪽에 2번 애니메이션을 넣으시면 될듯 싶네요
 
그리고 클릭이벤트(또는 터치이벤트)를 뷰에 달면
애니메이션과 상관없이 언제든지 받을 수 있습니다.
Gradler (109,780 포인트) 님이 2013년 8월 19일 답변
그럼 버튼1 눌렀을때 5초동안 진행되는 스케일애니메이션이 동작중일때도
버튼2 클릭시 이벤트가 적용 가능하다는건가요 ??
죄송하지만 애니메이션을 통해 움직이고 있는 이미지뷰를 움직이는 도중에 클릭이벤트를 받을 수도 있나요 ?? 움직이는 이미지뷰 클릭시 visible을 줘버린다던지 ...
앞서 말씀드렸다 시피 클릭이벤트와 애니메이션은 별개 입니다.
애니메이션 진행중에만 클릭이벤트가 동작하기를 원하시면 flag 변수를 하나 추가해서
onAnimationStart에 true 시키고 onAnimationEnd에 false시켜서
onClick이벤트에서 해당 flag가 true 일때만 동작하게 구현하시면 되지요
...