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을 붙여주자.
이렇게 하면 애니메이션이 끝나고 다음 동작을 진행하여
자연스러운 디자인을 만들 수 있다.
'Android 개발 > android :: Tip' 카테고리의 다른 글
안드로이드 앱 내리기 (게시 취소) 방법 (0) | 2022.03.09 |
---|---|
[안드로이드 RecyclerView] 스크롤시 아이템 재사용 오류 해결 방법 (2) | 2021.03.26 |
[안드로이드 RecyclerView, ListView] ScrollBar 사라지지 않고 유지하는 방법 (0) | 2021.01.14 |
[안드로이드 RecyclerView] 구분선 제거하는 방법 (divider 없애기) (0) | 2021.01.14 |
[안드로이드 웹뷰] WebView 하얀화면 아무것도 안 뜨는 현상 해결 (0) | 2021.01.13 |
[안드로이드 Gradle] 최신 Library dependencies 추가를 직접 implementation 하는 방법 (0) | 2020.12.11 |
[안드로이드 Animation] startAnimation(), setAnimation() 차이 구분 (1) | 2020.12.06 |
[안드로이드 String] 특정 문자 기준으로 자르기 - substring, indexOf (0) | 2020.11.11 |
댓글