0
点赞
收藏
分享

微信扫一扫

android 属性动画之 ObjectAnimator

zidea 2023-03-10 阅读 134


前面一篇博客讲解了 ​​android 补间动画​​,这里来讲解一下android 3.0之后添加的一些动画   animator 中的 ObjectAnimator 。

属性动画概念:


所谓属性动画:改变一切能改变的对象的属性值,不同于补间动画:只能改变 alpha,scale,rotate,translate。听着有点抽象,举例子说明




补间动画能实现的:

1.alpha 



1. //第一个参数为 view对象,第二个参数为 动画改变的类型,第三,第四个参数依次是开始透明度和结束透明度。  
2. "alpha", 0f, 1f);
3. 2000);//设置动画时间
4. new DecelerateInterpolator());//设置动画插入器,减速
5. 1);//设置动画重复次数,这里-1代表无限
6. //设置动画循环模式。
7. //启动动画。



2.scale


1. AnimatorSet animatorSet = new AnimatorSet();//组合动画  
2. "scaleX", 1f, 0f);
3. "scaleY", 1f, 0f);
4.
5. 2000);
6. new DecelerateInterpolator());
7. //两个动画同时开始
8. animatorSet.start();



3.translate


1. ObjectAnimator translationUp = ObjectAnimator.ofFloat(button, "Y",  
2. 0);
3. new DecelerateInterpolator());
4. 1500);
5. translationUp.start();


4. rotate



1. AnimatorSet set = new AnimatorSet() ;               
2. "rotationX", 0f, 180f);
3. 2000);
4. "rotationX", 180f, 0f);
5. 2000);
6. "rotationY", 0f, 180f);
7. 2000);
8. "rotationY", 180f, 0f);
9. 2000);
10.
11. //先执行anim动画之后在执行anim2
12. set.play(anim3).before(anim4) ;
13. set.start();


补间动画不能实现的:

5.android 改变背景颜色的动画实现如下


1. ObjectAnimator translationUp = ObjectAnimator.ofInt(button,  
2. "backgroundColor", Color.RED, Color.BLUE, Color.GRAY,
3. Color.GREEN);
4. new DecelerateInterpolator());
5. 1500);
6. 1);
7. translationUp.setRepeatMode(Animation.REVERSE);
8. /*
9. * ArgbEvaluator:这种评估者可以用来执行类型之间的插值整数值代表ARGB颜色。
10. * FloatEvaluator:这种评估者可以用来执行浮点值之间的插值。
11. * IntEvaluator:这种评估者可以用来执行类型int值之间的插值。
12. * RectEvaluator:这种评估者可以用来执行类型之间的插值矩形值。
13. *
14. * 由于本例是改变View的backgroundColor属性的背景颜色所以此处使用ArgbEvaluator
15. */
16.
17. new ArgbEvaluator());
18. translationUp.start();




更多关于android 属性动画的相关知识请参考详细博客 ​​Android属性动画  ValueAnimator​​

举报

相关推荐

0 条评论