반응형
본 포스팅은 아래 포스팅들과 관련있습니다.
- [Android] Property Animation – Rotate (회전)
- [Android] Property Animation – Translate (이동)
- [Android] Property Animation – Scale (확대/축소)
- [Android] Property Animation – Fade (나타나기/사라지기)
- [Android] Property Animation – Snowing (눈 내리기)
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의 프로퍼티 중 하나입니다. 이런 식으로도 애니메이션을 적용할 수 있다는 점을 인지하면 될 것 같습니다.
반응형
'개발 > Android' 카테고리의 다른 글
[Android] Dagger – intro (0) | 2020.11.08 |
---|---|
[Android] Property Animation – Snowing (눈 내리기) (0) | 2020.11.08 |
[Android] Property Animation – Fade (나타나기/사라지기) (0) | 2020.11.08 |
[Android] Property Animation – Scale (확대/축소) (0) | 2020.11.08 |
[Android] Property Animation – Translate (이동) (0) | 2020.11.08 |