android中的动画之属性动画

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中的动画之属性动画相关的知识,希望对你有一定的参考价值。

我在这里将说下关于属性动画中的多个动画同时,在之前我们知道可以在xml代码中的set元素下设置android:ordering属性来控制动画的同时发生。这里我将说的是在JAVA代码中,怎么实现动画同时发生,有两种方法。

1.通过多个ObjectAnimator对象来实现

1                 ObjectAnimator.ofFloat(imageview, "translationY", 0F, 100F).setDuration(1000).start();
2                 ObjectAnimator.ofFloat(imageview, "translationX", 0F, 100F).setDuration(1000).start();
3                 ObjectAnimator.ofFloat(imageview, "rotation", 0F, 720F).setDuration(1000).start();

2.通过PropertyValuesHolder对象来实现

  首先我来说下这个类的作用

   从API中的 PropertyValuesHolder objects can be used to create animations with ValueAnimator or ObjectAnimator that operate on several different properties in parallel.这句话我们可以这个是一个工具类,用来操作多个动画并行的发生。

 其次,再来说说怎么使用这个类来实现该效果

 通过调用它的静态的工厂方法来创建一个PropertyValuesHolder 的对象,调用ofFloat(String propertyName, float... values)方法来创建,第一个参数表示的是所操作的属性名,后面的参数表示的是原始值和最终值。我们可以通过反复调用这个方法,来创建多个PropertyValuesHolder对象。

 然后通过调用ObjectAnimator的静态方法ofPropertyValuesHolder(Object target, PropertyValuesHolder... values)将多个PropertyValuesHolder对象加载到ObjectAnimator的对象上,最后通过ObjectAnimator的对象来调用start来启动

代码

1                 PropertyValuesHolder p1 = PropertyValuesHolder.ofFloat("translationY", 0F, 100F);
2                 PropertyValuesHolder p2 = PropertyValuesHolder.ofFloat("translationX", 0F, 100F);
3                 PropertyValuesHolder p3 = PropertyValuesHolder.ofFloat("rotation", 0F, 720F);
4                 ObjectAnimator.ofPropertyValuesHolder(imageview, p1,p2,p3).start();

 

以上是关于android中的动画之属性动画的主要内容,如果未能解决你的问题,请参考以下文章

android中的动画之属性动画

android中的动画之变换动画(Tween Animation)

Android动画之视图动画和属性动画

Android使用片段在viewpager中的页面滚动上放置动画

Android属性动画之旋转动画

Android 动画系列之补间(Tween)动画详解