- github 예제 : animation-samples
목차
애니메이션 Activity transition을 할 때 기억해야 할 3가지
시작하기 전에 용어 정리를 하면 scene 이라는 게있다. scene은 이 전환 애니메이션을 하는 하나의 장면을 의미한다.
1. enter
enter는 뷰가 어떻게 이 scene 에 들어갈것인가 정하는 것이다.
2. exit
exit는 마찬가지로 뷰가 어떻게 scene을 나갈 것인가 정하는 것이다.
3. shared elements
shared elements는 전환을 하는 두 Activity 사이에 공유하는 elements를 정하는 것이다.
안드로이드에서 지원하는 전환 애니메이션
explode
뷰가 scene의 중심부에서 안이나 밖으로 이동하는 것
slide
뷰가 scene의 가장자리 중 하나에서 안이나 밖으로 이동하는 것
fade
불투명도를 변경해서 scene을 추가하거나 제거하는 것
기본 애니메이션 전환
1. 버전 체크
// Check if we're running on Android 5.0 or higher
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// Apply activity transition
} else {
// Swap without transition
}
일단 이 기능은 안드로이드 5 (API 21) 이상에서만 사용 가능하다. 구현 전에 버전 체크를 해준다.
2. 테마 변경
<style name="BaseAppTheme" parent="android:Theme.Material">
<!-- enable window content transitions -->
<item name="android:windowActivityTransitions">true</item>
</style>
사용하는 테마에 android:windowActivityTransitions을 true로 해준다.
3. 구현
일단 기본 Activity 전환 기능을 구현한다.
startActivity(intent,
ActivityOptions.makeSceneTransitionAnimation(this).toBundle())
공식 문서에 쓰여져 있는 코드이다. intent 만들어주고 startActivity 해준다.
보면 두번째 파라미터에 번들이 들어가있다.
- 공식 문서 : startActivity
공식 문서 참고하면 된다.
여기까지가 기본 애니메이션 전환이다. 여기까지 구현을 해보면 전환이 기존과 달라진 것을 볼 수 있다.
이제 여기서부터 심화