본문 바로가기
Android 개발/android :: Tip

[안드로이드 Animation] 애니메이션 끝나는 시점 받기

by 독학하는 1인 개발자 2021. 3. 29.

Android 개발 Tip.

 

- Animation

 

애니메이션 끝나는 시점 받는 방법

 

Animation 끝난 후 동작 처리

 

 

 

 

 

안 써두면 까먹는 소소한 팁.

 

 

 

안드로이드 애니메이션을 쓰다보면

 

애니메이션이 끝난 다음 동작을 처리하고 싶을 때가 있다.

 

예를 들어 애니메이션이 끝난 다음 뷰를 사라지게 한다든지

 

애니메이션이 끝난 다음 다른 애니메이션을 시작하고 싶은 경우다.

 

 

 

 

 

 

 

방법은 2단계로 구분할 수 있다.

 

 

1. AnimationListener 구현

 

애니메이션의 종류, 반복, 시작 등의 시점을 받아오는 리스너를 구현한다.

다음과 같이 구현하면 된다.

 

1
2
3
4
5
6
7
8
9
10
Animation.AnimationListener aniListener01 = new Animation.AnimationListener() {
    public void onAnimationEnd(Animation animation) { // 애니메이션이 끝났을 때
        // 원하는 코드 작성
    }
    
    @Override
    public void onAnimationRepeat(Animation animation) { }
    @Override
    public void onAnimationStart(Animation animation) { }
};
cs

 

 

2. 리스너 등록

생성한 애니메이션 변수에 위에서 만든 리스너를 등록한다.

 

1
2
3
Animation ani_rotate;
ani_rotate = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.rotate);
ani_rotate.setAnimationListener(aniListener01);
cs

 

 

Tip.

혹시 리스너 등록(setAnimationListener)을 다른 onClickListener등 메소드 내에서 사용하려는데

빨간줄이 뜬다면 1번 단계에서 리스너 생성 맨 앞에 final을 붙여주자.

 

 

 

이렇게 하면 애니메이션이 끝나고 다음 동작을 진행하여

 

자연스러운 디자인을 만들 수 있다.

 

 

 

 

댓글