博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 动画 之 ObjectAnimator
阅读量:6083 次
发布时间:2019-06-20

本文共 2487 字,大约阅读时间需要 8 分钟。

hot3.png

android 3.0之后添加的一些动画   animator 中的 ObjectAnimator

补间动画能实现的:

1.alpha 透明度

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

2.scale

       AnimatorSet animatorSet = new AnimatorSet();//组合动画	ObjectAnimator scaleX = ObjectAnimator.ofFloat(text, "scaleX", 1f, 0f);	ObjectAnimator scaleY = ObjectAnimator.ofFloat(text, "scaleY", 1f, 0f);	animatorSet.setDuration(2000);	animatorSet.setInterpolator(new DecelerateInterpolator());	animatorSet.play(scaleX).with(scaleY);//两个动画同时开始	animatorSet.start();

3.translate

ObjectAnimator translationUp = ObjectAnimator.ofFloat(button, "Y",button.getY(), 0);	translationUp.setInterpolator(new DecelerateInterpolator());	translationUp.setDuration(1500);	translationUp.start();

4. rotate

AnimatorSet set = new AnimatorSet() ;                     ObjectAnimator anim = ObjectAnimator .ofFloat(phone, "rotationX", 0f, 180f);         anim.setDuration(2000);         ObjectAnimator anim2 = ObjectAnimator .ofFloat(phone, "rotationX", 180f, 0f);         anim2.setDuration(2000);         ObjectAnimator anim3 = ObjectAnimator .ofFloat(phone, "rotationY", 0f, 180f);         anim3.setDuration(2000);         ObjectAnimator anim4 = ObjectAnimator .ofFloat(phone, "rotationY", 180f, 0f);         anim4.setDuration(2000);                  set.play(anim).before(anim2); //先执行anim动画之后在执行anim2        set.play(anim3).before(anim4) ;         set.start();

补间动画不能实现的:

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

ObjectAnimator translationUp = ObjectAnimator.ofInt(button,				"backgroundColor", Color.RED, Color.BLUE, Color.GRAY,				Color.GREEN);		translationUp.setInterpolator(new DecelerateInterpolator());		translationUp.setDuration(1500);		translationUp.setRepeatCount(-1);		translationUp.setRepeatMode(Animation.REVERSE);		/*		 * ArgbEvaluator:这种评估者可以用来执行类型之间的插值整数值代表ARGB颜色。		 * FloatEvaluator:这种评估者可以用来执行浮点值之间的插值。		 * IntEvaluator:这种评估者可以用来执行类型int值之间的插值。		 * RectEvaluator:这种评估者可以用来执行类型之间的插值矩形值。		 * 		 * 由于本例是改变View的backgroundColor属性的背景颜色所以此处使用ArgbEvaluator		 */		translationUp.setEvaluator(new ArgbEvaluator());		translationUp.start();

关于Animation更详细的教程:

 Android属性动画Property Animation系列一之ValueAnimator:

 Android属性动画Property Animation系列二之ObjectAnimator

转载于:https://my.oschina.net/Bruce370/blog/493268

你可能感兴趣的文章
Java基础学习总结(23)——GUI编程
查看>>
Ruby on Rails 环境搭建
查看>>
MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
查看>>
部署System Center App Controller 2012 Service Pack 1 (5)
查看>>
MySQL:日期函数、时间函数总结
查看>>
工作是什么
查看>>
Linux 中cpu通略
查看>>
服务器端创建账户收件箱规则--将邮件复制到指定文件夹中
查看>>
java中简单集合框架(二)
查看>>
函数返回局部变量的一些问题
查看>>
Solaris11性能监控--处理器
查看>>
内存模型
查看>>
如何快速开发网站?
查看>>
tomcat等服务器返回给页面的数字分别表示的意思!
查看>>
我的友情链接
查看>>
个人博客
查看>>
我的友情链接
查看>>
mysql 参数 innodb_flush_log_at_trx_commit
查看>>
Windows Server 2012 远程桌面,你需要具有通过远程桌面服务进行登录的权限
查看>>
Linux流量监控工具 – iftop
查看>>