原文网址:http://blog.csdn.net/feiduclear_up/article/details/39255083

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

属性动画概念:

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

补间动画能实现的:

1.alpha

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

2.scale

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

3.translate

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

4. rotate

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

补间动画不能实现的:

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

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

更多关于android 属性动画的相关知识请参考详细博客 Android属性动画Property Animation系列一之ValueAnimator

【转】android 属性动画之 ObjectAnimator的更多相关文章

  1. Android属性动画之ObjectAnimator

    相信对于Android初学者,对于Android中的动画效果一定很感兴趣,今天为大家总结一下刚刚学到的属性动画案例. 首先和一般的Android应用一样,我们先建一个工程,为了方便,我们的布局文件中就 ...

  2. Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了

    前言 我们都知道 Android 自带了 Roate Scale Translate Alpha 多种框架动画,我们可以通过她们实现丰富的动画效果,但是这些宽家动画却有一个致命的弱点,它们只是改变了 ...

  3. Android属性动画之ObjectAnimator控制

    Android为我们提供了大量的动画效果,如何通过这些动画来达到我们需要的效果呢?今天就为大家总结一下ObjectAnimator动画控制事件. 该项目的的布局文件只有两个控件:ImageView和B ...

  4. 详解Android属性动画

    前面我们讲到的属性动画都是使用代码的定义方式:Android属性动画之ValueAnimator和Android属性动画之ObjectAnimator和AnimatorSet,下面我们再来看看使用XM ...

  5. Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355 大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法 ...

  6. Android属性动画ObjectAnimator的使用1

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/106 属性动画ObjectAnimator的使用 属性动画 ...

  7. Android 属性动画ObjectAnimator和ValueAnimator讲解

    区别: ObjectAnimator 是直接对某个view进行更改. ValueAnimator 根据 TimeInterpolator 在不断产生相应的数据,来传进view  ,view自己做改变. ...

  8. Android属性动画

    这几天看郭神的博客 Android属性动画完全解析(上),初识属性动画的基本用法之后,我自己突然想实现一种动画功能,就是我们在携程网.阿里旅行等等手机APP端买火车票的时候,看到有选择城市,那么就有出 ...

  9. Android属性动画完全解析(下)

    转载:http://blog.csdn.net/guolin_blog/article/details/44171115 大家好,欢迎继续回到Android属性动画完全解析.在上一篇文章当中我们学习了 ...

随机推荐

  1. 微软MVP衣明志告诉你,小白全方位攻略,逆袭互联网达人

    技术专家们的起步之路是不尽相同的,今天我们要介绍的衣明志老师就是一个从普通游戏爱好者修炼成的技术大咖.尽管当时遇到了不少的困难,但是努力坚持自己解决问题让衣明志老师在技术之路上有了自己的特点. 我们先 ...

  2. ACM 字符串 题目整理

    AC自动机 UVa 11468  Substring AC自动机+概率DP. 注意要补全不存在的边. 为什么要补全不存在的边呢?补全以后可以直接找到状态的转移,即从所有子节点就可以实现所有状态转移. ...

  3. mysql 分组查询问题 group_concat

    这几天在做购物车的时候.购物车内的商品为一个商品占一行,结果再从数据库读出的时候,没有分组,而是循环所有的内容出来,然后进行判断.如果一样的话就把他保存到一个变量中.但是自己逻辑没搞清楚.一直出bug ...

  4. 推荐一个Android Studio很实用的插件android-butterknife-zelezny

    当你按钮很多,你又懒得写代码,虽然通过重写onClick比较方便,那么我们能不能连这个switch都省略掉呢? 答案是肯定的,下面这个插件就帮我们解决了这个问题! Android-butterknif ...

  5. JS第二天简单总结

    布尔型变量:true,flase 广泛用于真假的逻辑判断 对象:分类,对象是由一些彼此相关的属性和方法集合在一起而构成的一个数据实体: 例如,var today = new Date();中,Date ...

  6. oracle之rownum(伪列)

    整理和学习了一下网上高手关于rownum的帖子: 参考资料:  http://tech.ddvip.com/2008-10/122490439383296.html 和 http://tenn.jav ...

  7. storm 源码笔记

    (reify DistributedRPC$Iface (^String execute  [this ^String function ^String args]  (log-debug " ...

  8. 【转】C#线程同步示例

    using System; using System.Threading; // 银行帐户类 class Account { int balance;                         ...

  9. Android环境虚拟WINDOWS系统

    参考文档:http://bbs.anzhi.com/thread-5120526-1-1.html 我们知道安卓手机是arm平台,windows是x86平台,指令集完全不同,但在这里要教给大家的是靠软 ...

  10. NOIP 考前 Tarjan复习

    POJ 1236 给定一个有向图,求: 1) 至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 2) 至少要加多少条边,才能使得从任何一个顶点出发,都能到达全部顶点 第一个就是缩点之后有多少 ...