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();