属性动画(Property Animation)简单使用

1,介绍:

属性动画(Property Animation)是在 Android 3.0(API 11)后才提供的一种全新动画模式 

相对于补间动画 (Tween Animation) 属性动画真实的改变了坐标的位置。

2,代码实现:

【1】透明效果:        

ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "alpha", 1.0f, 0.8f,

                0.2f, 0.0f);

        // [2]设置动画执行的时长

        oa.setDuration(2000);

        // [3]执行动画

        oa.start();

【2】旋转效果: 

   ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "rotationY", 0, 90,

                180f, 360f);

        // [2]设置动画执行的时长

        oa.setDuration(2000);

        // [3]执行动画

        oa.start();

【3】缩放效果:

ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "scaleX", 1.0f, 1.2f,

                1.6f, 3.0f);

        // [2]设置动画执行的时长

        oa.setDuration(2000);

        // [3]执行动画

        oa.start();

【4】位移效果:

// [1]获取ObjectAnimator它的实例 通过它提供静态方法获取实例 参1:谁来执行这个动画 参2:

        ObjectAnimator oa = ObjectAnimator.ofFloat(iv, "translationX", 10, 40,

                100, -100);

        // [2]设置动画执行的时长

        oa.setDuration(2000);

        // [3]执行动画

        oa.start();

【5】set效果:   

 //创建属性动画的集合

        AnimatorSet set = new AnimatorSet();

        ObjectAnimator oa1 = ObjectAnimator.ofFloat(iv, "alpha", 1.0f, 0.8f,

                0.2f, 0.0f,1.0f);

        ObjectAnimator oa2 = ObjectAnimator.ofFloat(iv, "rotationY", 0, 90,

                180f, 360f);

        ObjectAnimator oa3 = ObjectAnimator.ofFloat(iv, "scaleX", 1.0f, 1.2f,

                1.6f, 3.0f);

        ObjectAnimator oa4 = ObjectAnimator.ofFloat(iv, "translationX", 10, 40,

                100, -100);

        //[2]让上面这几个动画一起执行

//        set.playTogether(oa1,oa2,oa3,oa4);

        

        set.playSequentially(oa4,oa2,oa3,oa1);

        set.setDuration(2000);

        //[3]设置谁来执行动画

        set.setTarget(iv);

        //[4]开始执行动画

        set.start();

猜你喜欢

转载自blog.csdn.net/Cricket_7/article/details/85113198
今日推荐