android ValueAnimator ObjectAnimator

来源:互联网 发布:淘宝接单app软件 编辑:程序博客网 时间:2024/06/06 01:12

android  PropertyAnimator 在API  11 过后才引入的     它完全可以替代     TweenAnimation

PropertyAnimator    分成两个类   ValueAnimator       ObjectAnimator

ValueAnimator    

 看名字 就知道是   数值动画       就是然一个值    从多少  到多少,  只是将类似动画的效果用到了数值上面;

具体的作用本来是想写一篇  理解笔记的但是看到大牛写的一篇文章太详细了,我就不在写了,这里推荐出来

点击查看 : Animation——ValueAnimator基本使用 

ObjectAnimator

ObjectAnimator其实是继承至ValueAnimator

public final class ObjectAnimator extends ValueAnimator 
三种方法  创建ObjectAnimator

 1、 java 代码ObjectAnimator.ofXXX()的方式创建

//ivJack.getTranslationX();//ivJack.setTranslationX();// 就是凡是可以用set  get方法得到的属性都可以进行 属性动画//如果不确定 属性值的名字    就用set  get 先尝试一下ObjectAnimator  tranX  = ObjectAnimator.ofFloat(ivJack,"translationX",100,300,200,500);//就是 x坐标  先移动到100 再移动到300  再从300移动到200  再从200移动到500tranX.setDuration(3000);   //动画执行一次的时长  重复一次就再加一倍tranX.setRepeatCount(1);//重复的次数tranX.setRepeatMode(ObjectAnimator.RESTART);//重复的方式tranX.setStartDelay(1000);//开始延时tranX.start();

2、第二种方式   先创建 PropertyValuesHolder

PropertyValuesHolder  p1 = PropertyValuesHolder.ofFloat("scaleX",2f,0.5f,1);PropertyValuesHolder  p2 = PropertyValuesHolder.ofFloat("scaleY",2f,0.5f,1);ObjectAnimator ob = ObjectAnimator.ofPropertyValuesHolder(ivJack, p1, p2);ob.start();

3、第三种方式  通过创建xml  文件



//加载xml 文件中加载的动画ObjectAnimator ro = (ObjectAnimator) AnimatorInflater.loadAnimator(this, R.animator.rotate_animator);//补间动画用的是AnimationUtils      属性动画用的是AnimatorInflaterro.setTarget(ivJack); // 设置动画对象ro.start();

还要有一个 AnimatorSet类

 AnimatorSet set = new AnimatorSet(); set.playSequentially(animator1,animator2,animator3);//有序播放// set.playTogether(animator1,animator2,animator3);//一起播放// set.play(animater1).with(Animater2).after(animator3).before(animator4);// 自定义顺序播放 set.start();
当然也可以通过xml代码生成


1 0
原创粉丝点击