안드로이드 Blink animation 을 구현하여
위와 같이 깜빡이는 글씨를 만들 수 있다.
Animation 정의하기
res -> anim 에 애니메이션 xml을 하나 생성해주고
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration="1000"
android:fromAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:repeatCount="infinite"
android:repeatMode="reverse"
android:toAlpha="0.0" />
</set>
각 속성을 정의하여 원하는 애니메이션을 작성해준다.
duration : 애니메이션 시간 (1/1000초)
fromAlpha : 시작투명도 (0 = 안보임, 1 = 다보임)
interpolator = 애니메이션 시작과 끝의 사이를 어떻게 표현할 것인가? (애니메이션이 어떻게 진행될 것인가)
interpolator 옵션
- accelerate_interpolator : 점점 빠르게 (가속)
- decelerate_interpolator : 점점 느리게 (감속)
- accelerate_decelerate_interpolator : 가속 + 감속
- anticipate_interpolator : 시작 위치에서 조금 뒤로 당겼다가 이동
- overshoot_interpolator : 도착 위치를 조금 지나쳤다가 도착위치로 이동
- bounce_interpolator : 도착 위치에서 튕김
등의 옵션이 있다.
위 예시에서는 가속을 사용하였다.
repeatCount = 실행 횟수 (infinite : 무한반복)
repeatMode = repeat (처음 반복) / reverse (순환)
toAlpha : 도착투명도 (0 = 안보임, 1 = 다보임)
즉, 위의 코드는 1초에 점점빠르게 투명도가 1 -> 0 으로 변하고, 0 -> 1로 순환하는 방식의 애니메이션이다.
Animation 적용하기
// blink 애니메이션
val anim = AnimationUtils.loadAnimation(this,R.anim.blink_animation)
// 애니메이션 재생
titleText.startAnimation(anim)
이제 AnimationUtils의 loadAnimation 메소드로 아까 정의한 애니메이션을 불러오고,
사용하고자 하는 뷰에 startAnimation 으로 실행하면 된다.
참고
https://csjung.tistory.com/176