본문 바로가기
개발/Android

[Android] Property Animation – Color (색상 변경)

by Dev Aaron 2020. 11. 8.
반응형

본 포스팅은 아래 포스팅들과 관련있습니다.


Android에서 Color(색상) 변경 애니메이션을 구현하는 방법을 알아 보겠습니다. 먼저 적용된 결과는 다음과 같습니다.

버튼을 누를 때마다 배경 색이 바뀌는 애니메이션입니다. 코드는 다음과 같습니다.

class ColorActivity : AppCompatActivity() {

    private var prevColor = Color.BLACK

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_color)

        btnColor.setOnClickListener { animate() }
    }

    private fun animate() {
        val newColor = getRandomColor()
        ObjectAnimator.ofArgb(ivSnow.parent, "backgroundColor", prevColor, newColor).apply { duration = 1000 }.start()
        prevColor = newColor
    }

    private fun getRandomColor() =
        Color.argb(255, Random.nextInt(256), Random.nextInt(256), Random.nextInt(256))

}

핵심 코드는 다음과 같습니다.

ObjectAnimator.ofArgb(ivSnow.parent, "backgroundColor", prevColor, newColor).apply { duration = 1000 }.start()

이전 예제와 차이점은 Property 객체가 아닌 String 문자열을 인자로 넘겨주었다는 점인데요. 눈치 채셨겠지만 “backgroundColor”는 부모 View의 프로퍼티 중 하나입니다. 이런 식으로도 애니메이션을 적용할 수 있다는 점을 인지하면 될 것 같습니다.

반응형