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 |