Skip to content

Android Animation

Posted on:April 11, 2020 at 10:51:23 GMT+8

Tween Animation

变换动画

共同属性:

实现方式:

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。

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()