Android——属性动画(ObjectAnimator)

上次ValueAnimator也是属性动画的一种,有些人可能会问,动画可以组合并行执行,

能不能串行一个一个来呢(既然你诚心诚意的请教了,那我就大发慈悲的告诉你,,当

然是阔以的啦)

ObjectAnimator的功能非常强大,可以设置动画的串行并行,也更加简洁、方便的使用

动画。

1、创建动画集合set(组合动画时)

AnimatorSet set=new AnimatorSet();

2、制造自己指定的动画

ObjectAnimator ofFloat(Object target, String propertyName, float… values)

第一个参数是作用于动画的对象(这里是图片),第二个是要创建哪

个动画(scale、translate、等),第三个是动画的数值,从0开始。

eg:ObjectAnimator o1=ObjectAnimator.ofFloat(iv, “translationY”, -300,0);

对图片iv添加平移动画,从-300到0的位置,都是坐标。可以直接在后面调用start执行

动画。o1.start();

3、设置动画的一些方法

set.playSequentially(Animator… items),可以将多个ObjectAnimator对象放入其

中,用,隔开,里面的动画将串行执行

set.playTogether(Animator… items) 多个动画并行执行

setDuration、动画时间

set.setInterpolator(new AccelerateInterpolator())设置指定加速器,需要new出来。

我们来做一个上下跳动的动画,然后跳完向右平移,平移结束后来放大图片。

private void inivAnimSet() {
        // TODO Auto-generated method stub
        ObjectAnimator o1=ObjectAnimator.ofFloat(iv, "translationY", -300,0);
        ObjectAnimator o2=ObjectAnimator.ofFloat(iv, "translationY", 0,-200);
        ObjectAnimator o3=ObjectAnimator.ofFloat(iv, "translationY", -200,0);
        ObjectAnimator o4=ObjectAnimator.ofFloat(iv, "translationY", 0,-100);
        ObjectAnimator o5=ObjectAnimator.ofFloat(iv, "translationY", -100,0);
        ObjectAnimator o6=ObjectAnimator.ofFloat(iv, "translationY", 0,-50);
        ObjectAnimator o7=ObjectAnimator.ofFloat(iv, "translationY", -50,0);
        ObjectAnimator o8=ObjectAnimator.ofFloat(iv, "translationY", 0,-20);
        ObjectAnimator o9=ObjectAnimator.ofFloat(iv, "translationY", -20,0);
        ObjectAnimator o10=ObjectAnimator.ofFloat(iv, "translationX", 0,300);
        ObjectAnimator o11=ObjectAnimator.ofFloat(iv, "scaleX", 1,2);
        ObjectAnimator o12=ObjectAnimator.ofFloat(iv, "scaleY", 1,2);
        set=new AnimatorSet();
        set.playSequentially(o1,o2,o3,o4,o5,o6,o7,o8,o9,o10,o11);
        set.playTogether(o11,o12);
        set.setDuration(300);
        set.setInterpolator(new AccelerateInterpolator());
    }

将set进行start便可执行动画。

你可能感兴趣的:(Android——属性动画(ObjectAnimator))