Tween Animation
变换动画
- Alpha 透明度渐变
- Scale 缩放渐变
- Translate 平移
- Rotate 旋转
共同属性:
- duration
- fillAfter
- fillBefore
- interpolator
- repeatCount
- repeatMode
- startOffset
实现方式:
Frame Animation
帧动画
Layout Animation
布局动画
Property Animation
属性动画
Property:对于动画系统来说,是通过setter
和getter
暴露的字段field
。还有特殊的一种情况,通过android.util.Property
暴露的用于View的一些属性,可以以类型安全的方式创建动画。Android中的动画系统作用于property
上,因此只要有setter
(有时也要getter
),就可以“动画” TA,不仅仅是 UI 元素。
View properties:是View
类的功能的集合,允许 view 在特定的方式下进行变换,对 UI 的动画很有用。
有两种方式访问这些属性:setter/getter
,如setTranslateX()
/getTranslateX()
;android.util.Property
对象,如View.TRANSLATE_X
。
Property animation:简单来说,是随着时间改变属性property
的值。ObjectAnimator
提供了简单且一劳永逸的机制来实现 property animation。
val animator = ObjectAnimator.ofFloat(star, View.ROTATION, -360f, 0f)
animator.duration = 1000
animator.addListener(object : AnimatorListenerAdapter() {
override fun onAnimationStart(animation: Animator?) {
rotateButton.isEnabled = false
}
override fun onAnimationEnd(animation: Animator?) {
rotateButton.isEnabled = true
}
})
animator.start()