[android] 애니메이션 중첩

안드로이드에서 여러 애니메이션을 중첩하여 사용하는 것은 앱에 화면 전환 효과 등을 적용할 때 유용합니다. 이 포스트에서는 Android 앱에서 애니메이션을 중첩하는 방법에 대해 알아보겠습니다.

애니메이션 리소스 작성

애니메이션을 중첩하기 위해서는 먼저 res/anim 디렉토리에 애니메이션 리소스 파일을 작성해야 합니다. 예를 들어, fade_in.xmlslide_up.xml 애니메이션을 작성해보겠습니다.

<!-- fade_in.xml -->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="1000" />

<!-- slide_up.xml -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="100%p"
        android:toYDelta="0"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:duration="500" />
</set>

애니메이션 적용

이제 작성한 애니메이션을 뷰나 액티비티 전환에 적용할 수 있습니다. 예를 들어, 액티비티 전환 시 fade_in.xml로 시작하여 slide_up.xml을 중첩하는 방법은 다음과 같습니다.

val fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fade_in)
val slideUpAnimation = AnimationUtils.loadAnimation(this, R.anim.slide_up)

view.startAnimation(fadeInAnimation)

fadeInAnimation.setAnimationListener(object : Animation.AnimationListener {
    override fun onAnimationStart(animation: Animation?) {}

    override fun onAnimationEnd(animation: Animation?) {
        view.startAnimation(slideUpAnimation)
    }

    override fun onAnimationRepeat(animation: Animation?) {}
})

위 예제는 Kotlin으로 작성된 코드이며, Java로 작성한 경우에도 유사하게 적용할 수 있습니다.

애니메이션을 중첩하여 사용함으로써 사용자 경험을 향상시키고 앱에 동적인 효과를 부여할 수 있습니다.

더 자세한 내용은 안드로이드 개발자 사이트에서 확인할 수 있습니다.