프로그래밍/Android

[안드로이드] 색상 변화 애니메이션 만들기 (ValueAnimator / Color change animation)

Lou Park 2021. 4. 10. 23:58

결과물 예시

Target API 21 이상으로 설정한다.

private fun animateRainbow() {
    val anim = ValueAnimator.ofArgb(
        Color.RED, Color.YELLOW, Color.GREEN, Color.BLUE, Color.MAGENTA
    ).apply {
        duration = 1000 * 5
        repeatCount = ValueAnimator.INFINITE
        repeatMode = ValueAnimator.REVERSE
        addUpdateListener {
            // tvRainbow가 TextView이다.
            binding.tvRainbow.setBackgroundColor(it.animatedValue as Int)
        }
    }
    anim.start()
}

각 컬러 값들은 ContextCompat.getColor(context, R.color.blue)식으로 colors.xml에 정의되어있는 값으로 교체 할 수 있다.