경험의 기록

 

안드로이드 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)

이제 AnimationUtilsloadAnimation 메소드로 아까 정의한 애니메이션을 불러오고,

사용하고자 하는 뷰에 startAnimation 으로 실행하면 된다.

 

 

 

 

참고

https://csjung.tistory.com/176

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading