Android属性动画

2022-10-03  本文已影响0人  小鱼你好

1、ObjectAnimator

创建一个 ObjectAnimator 需通过其静态工厂类直接返还一个 ObjectAnimator对象

ObjectAnimatior animator = ObjectAnimator.ofFloat(view,"translationX",200)
animator.setDuration(500)
animator.start()

常用的动画属性包括:
平移translationX,translationY
旋转rotation,rotationX,rotationY
PrivotX和PrivotY:控制View对象的支点位置,围绕这个支点进行旋转和缩放变换处理
透明度alpha:”默认是1(不透明),0代表完全透明。
x和y:描述View对象在其容器中的最终位置
在使用ObjectAnimator的时候,要操作的属性必须要有get和set方法,因此也可以做一些自定义属性进行相应的控制,例如进行View的宽度控制,但是宽度需要自定义getWidth,setWidth方法。

2、ValueAnimator

ValueAnimator不提供任何动画效果,它更像一个数值发生器,用来产生有一定规律的数字,从而让调 用者控制动画的实现过程,使用ValueAnimator的AnimatorUpdateListener中监听数值的变化,完成动画的变换。

ValueAnimator animator = ValueAnimator.ofFloat(0,100)
animator.setTarget(view)
animator.setDuration(500).start()
animator.addUpdateListener(new AnimatorUpdateListener(){
    @Override
    public void onAnimatorUpdata(ValueAnimator value){
        Float mFloat = (Float)value.getAnimatorValue()
    }
})

3、动画的监听

完整的动画具有start、Repeat、End、Cancel这4个过程,即实现Animator.AnimatorListener接口的方法,如果不关心所有的流程方法可以实现AnimatorListenterAdaper进行选择自己关注的方法进行处理。

4、AnimatorSet组合动画,可以调用其with,before,after进行组合执行,after由两个重载方法一个传入时间表示延迟多长时间执行,另一个传入ValueAnimator或者ObjectAnimator表示在play方法传入的动画之后执行。

5、PropertyValuesHolder组合动画

用PropertyValuesHolder类只能是多个动画一起执行,需结合 ObjectAnimator.ofPropertyValuesHolder(Object target,PropertyValuesHolder…values)方法来使用。其第 一个参数是动画的目标对象;之后的参数是PropertyValuesHolder类的实例,可以有多个这样的实例,代表共同执行的动画。

PropertyValuesHolder holder = PropertyValuesHolder .ofFloat("translationX",0,100,0)
上一篇下一篇

猜你喜欢

热点阅读