Activity 애니메이션의 모든것

요즘 앱들을 보면 화면 전환시 기본 애니메이션이 아닌 커스텀 애니메이션을 쓰는 경우가 많아 졌습니다. 그 중 대표적으로 플립보드에서 화면전환시 이전화면은 밑으로 빠지면서 다음화면은 오른쪽에서 왼쪽으로 애니메이션을 볼 수있습니다. 국내 카카스토리도 자세히 보면 비슷한 애니메이션을 사용 하고 있습니다.

이처럼 화면전환 효과로 인해 좀더 퀄리티 있는 앱을 개발할 수 있습니다. 그럼 어떻게 화면전환시 에니매이션 효과를 줄 수 있는지 하나씩 설명 해보겠습니다.

화면 전환 애니메이션을 구현 하기위해 필요한건 overridePendingTransition(int enterAnim, int exitAnim) 메소드 하나면 충분합니다. overridePendingTransition(int enterAnim, int exitAnim) Adnroid SDK API 설명을 간략히 요약 하자면 startActivity(), finish() 직후 명시적으로 전환 애니메이션을 지정할 수 있다고 정의 되어 있습니다.

  • enterAnim: 새로 뛰워지는 액티비티에 적용할 애니메이션
  • exitAnim: 자신이 종료 될때 적용할 애니메이션

아래 코드와 같이 구현하면 하면됩니다.

그럼 에니메이션을 어떻게 줄지, 플립보드와 같은 애니메이션 효과를 구현 해보면서 설명 해보겠습니다.

처음 전환되는 자신은 뒤로 빠지면서 오른쪽으로 약간 움직이는 애니메이션입니다. xml을 보면 translate로 화면을 오른쪽에서 왼쪽으로 이동합니다.

그리고 다음은 화면이 뒤로빠지면서 약 10%정도 움직이는 애니메이션입니다. alpha와 scale을 이용해서 애니메이션 할 수 있습니다.

다음 화면은 finish에 들어갈 애니메이션으로 종료 될때 새로운 화면이 올라오게 되는데, 이 화면의 효과는 위와 같지만 방향만 다릅니다.

다음 화면은 finish화면에서 닫기는 화면 애니메이션으로 translate로 화면을 윈쪽에서 오른쪽으로 이동 하게합니다.

이렇게 해서 onCreate()와 finish()시 각각 시작, 종료 애니메이션 4개를 만듭니다.

위와 같이 실제 적용 해보면 플립보드또는 카카오스토리 같은 애니메이션을 확인 할 수 있을 것입니다.

“Activity 애니메이션의 모든것”에 대한 2개의 생각

댓글 남기기