본문 바로가기

android/Android Developers

Animation 1 - Tween Animation

Tween Animation 은 View Animation 의 한 종류로 View 의 위치, 투명도, 크기, 회전을 지정한 시간동안 수행하는 애니메이션입니다. 

 

Tween Animation 의 종류는 아래와 같습니다.

TranslateAnimation → View 의 좌표를 변경하여 위치를 변경시키는 애니메이션입니다.

AlphaAnimation → View 의 투명도를 변경하는 애니메이션입니다.

ScaleAnimation → View 의 가로와 세로 크기를 변경하는 애니메이션입니다.

RotateAnimation → View 를 회전시키는 애니메이션입니다.

 

Tween Animation 은 코드 또는 XML 을 이용하여 View 에 적용할 수 있습니다.

 

코드를 이용한 Tween Animation

    private fun tweenAnimationByCode() {
        binding.startTweenAnimation.setOnClickListener { view ->
            val myAnimationSet = AnimationSet(true)
            myAnimationSet.duration = 3000

            //현재 위치에서 X 축으로 300 만큼 Y 축으로 300 만큼 이동합니다.
            val translate = TranslateAnimation(0f, 300f, 0f, 300f)

            //뷰를 360도 회전합니다.
            val rotate = RotateAnimation(0f, 360f)

            val alpha = AlphaAnimation(1f, 0f)

            //View 의 X 축 길이를 1배에서 3배로, Y 축 길이를 1배에서 3배로 키웁니다.
            val scale = ScaleAnimation(1f, 3f, 1f, 3f)

            myAnimationSet.apply {
                addAnimation(translate)
                addAnimation(rotate)
                addAnimation(alpha)
                addAnimation(scale)
            }
            // 해당 View 에 여러 Animation 을 적용하기위해 AnimationSet 에 Animation 을 담아서 넘겨줍니다.
            view.startAnimation(myAnimationSet)
        }
    }

 

 

XML 을 이용한 Tween Animation 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000">
    <translate
        android:fromXDelta="0%"
        android:fromYDelta="0%"
        android:toXDelta="50%"
        android:toYDelta="150%" />

    <rotate
        android:fromDegrees="0"
        android:toDegrees="360" />

    <alpha
        android:fromAlpha="1"
        android:toAlpha="0" />

    <scale
        android:fromXScale="1"
        android:fromYScale="1"
        android:toXScale="3"
        android:toYScale="3" />
</set>

 

    private fun tweenAnimationByXML() {
        binding.startTweenAnimation.setOnClickListener { view ->
            val myAnimationSet = AnimationUtils.loadAnimation(this, R.anim.anim)
            view.startAnimation(myAnimationSet)
        }
    }

'android > Android Developers' 카테고리의 다른 글

edge-to-edge  (0) 2022.11.04
1. App bar(앱바 추가, 액션 추가 및 핸들링, up 액션)  (0) 2022.10.14