0%

Android Animation

Tween Animation

变换动画

  • Alpha 透明度渐变
  • Scale 缩放渐变
  • Translate 平移
  • Rotate 旋转

共同属性:

  • duration
  • fillAfter
  • fillBefore
  • interpolator
  • repeatCount
  • repeatMode
  • startOffset

实现方式:

Frame Animation

帧动画

Layout Animation

布局动画

Property Animation

属性动画

Property:对于动画系统来说,是通过settergetter暴露的字段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。

1
2
3
4
5
6
7
8
9
10
11
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()