안드로이드는 자체적으로 애니메이션을 지원합니다.
그 중 Interpolator는 보간 즉 시작지점과 종료지점을 연결하는 효과를 말합니다.
https://developer.android.com/reference/android/view/animation/BaseInterpolator
1. AccelerateInterpolator : 시작지점에서 가속하여 종료지점에 도달합니다.
2. AnticipateInterpolator : 시작지점의 뒤쪽으로 이동한 다음 종료지점에 도달합니다.
3. OvershootInterpolator : 시작지점에서 시작해 종료지점을 지나쳐 다시 종료지점에 도달합니다.
4. BounceInterpolator : 종료지점에 도달한 뒤 공튀기는 효과를 나타냅니다.
5. CycleInterpolator : 종료지점에 도달한 뒤 다시 시작지점으로 이동합니다.
6. DecelerateInterpolator : 종료지점에 도달할 수록 속도가 느려집니다.
7. LinearInterpolator : 동일한 속도로 시작지점에서 종료지점까지 도달합니다.
8. AnticipateOvershootInterpolator : AnticipateInterpolator와 OvershootInterpolator를 합친 효과를 나타냅니다.
9. AccelerateDecelerateInterpolator : AccelerateInterpolator와 DecelerateInterpolator를 합친 효과를 나타냅니다.
다음은 kotlin을 사용한 ProgressIndicator의 코드 예제입니다.
다음과 같이 progress bar에 애니메이션 효과를 지정해 줄 수 있습니다.
val animator = ValueAnimator.ofInt(0, 60)
animator.duration = 1 * SECOND_IN_MILLIS
animator.interpolator = DecelerateInterpolator()
animator.addUpdateListener { animation -> bind.progreesGoals.progress = animation.animatedValue as Int }
animator.start()
아래의 블로그에 Visual적인 예시와 함께 Interpolator에 대해 자세한 설명이 너무 잘 되어 있으니 참고하시길 바랍니다:)
감사합니다.
'안드로이드' 카테고리의 다른 글
[안드로이드] SQLite Cursor 사용에 관한 고찰 (0) | 2023.03.23 |
---|---|
[안드로이드] 서비스 startCommand에 관하여 (0) | 2022.01.17 |
[안드로이드] Android studio Arctic Fox 버전 이후 gradle allprojects 추가방법 (0) | 2021.11.10 |
[AWS Lightsail-ubuntu] 메모리가 부족해서 MYSQL이 설치가 안된다? (0) | 2021.04.28 |