1,首先我们看一下如下的代码

  1. import android.view.animation.LayoutAnimationController;
  2. import android.view.animation.Animation.AnimationListener;
  3. import android.view.animation.Transformation;
  4. import android.view.animation.Animation.AnimationListener;
  5. import android.view.animation.AlphaAnimation;
  6. import android.view.animation.TranslateAnimation;
  7.  
  8. private Animation myHistoryAnimation;
  9. private LayoutAnimationController myLayoutControl;
  10. private AlphaAnimation myHistoryAlphaAnimation;
  11. private AlphaAnimation myHistoryAlphaAnimationConTime;
  12. private TranslateAnimation myHistoryTranslateAnimation;
  13. private AnimationSet myHistoryAnimationSet;
  14.  
  15. myHistoryAlphaAnimation = new AlphaAnimation(1, 0);
  16. myHistoryAlphaAnimationConTime = new AlphaAnimation(1, 1);
  17. myHistoryAlphaAnimation.setDuration(1000);
  18. myHistoryAlphaAnimationConTime.setDuration(500);
  19. myHistoryAnimationSet = new AnimationSet(true);
  20. /* Vanzo:zhangshuli on: Fri, 20 Mar 2015 14:57:37 +0000
  21. * modify for v5 calculator
  22. myHistoryTranslateAnimation = (TranslateAnimation) AnimationUtils.loadAnimation(
  23. this, R.anim.history_clear_anim);
  24. */
  25. myHistoryTranslateAnimation = new TranslateAnimation(
  26.  
  27. Animation.RELATIVE_TO_SELF,0f,
  28.  
  29. Animation.RELATIVE_TO_SELF,0f,
  30.  
  31. Animation.RELATIVE_TO_SELF,0f,
  32.  
  33. Animation.RELATIVE_TO_SELF,10f);
  34. myHistoryTranslateAnimation.setDuration(1000);
  35. // End of Vanzo: zhangshuli
  36. myHistoryAnimationSet.setFillAfter(true);
  37. myHistoryAnimationSet.setAnimationListener(new AnimationListener() {
  38.  
  39. @Override
  40. public void onAnimationStart(Animation arg0) {
  41. // TODO Auto-generated method stub
  42. history_clear_choose.setVisibility(View.GONE);
  43.  
  44. }
  45.  
  46. @Override
  47. public void onAnimationRepeat(Animation arg0) {
  48. // TODO Auto-generated method stub
  49.  
  50. }
  51.  
  52. @Override
  53. public void onAnimationEnd(Animation arg0) {
  54. // TODO Auto-generated method stub
  55. android.util.Log.e("zhangshuli", "set");
  56. /* Vanzo:zhangshuli on: Fri, 20 Mar 2015 16:17:24 +0000
  57. * modify for v5 calculator
  58. if (mDrawerLayout.isDrawerVisible(GravityCompat.END)) {
  59. mDrawerLayout.closeDrawer(GravityCompat.END);
  60. }
  61. */
  62. // End of Vanzo: zhangshuli
  63.  
  64. }
  65. });
  66. myHistoryAlphaAnimation.setAnimationListener(new AnimationListener() {
  67.  
  68. @Override
  69. public void onAnimationStart(Animation arg0) {
  70. // TODO Auto-generated method stub
  71.  
  72. }
  73.  
  74. @Override
  75. public void onAnimationRepeat(Animation arg0) {
  76. // TODO Auto-generated method stub
  77.  
  78. }
  79.  
  80. @Override
  81. public void onAnimationEnd(Animation arg0) {
  82. mHistory.clear();
  83. mLogic.onClear();
  84. android.util.Log.e("zhangshuli", "tran1");
  85.  
  86. }
  87. });
  88. myHistoryAnimationSet.addAnimation(myHistoryTranslateAnimation);
  89. myHistoryAnimationSet.addAnimation(myHistoryAlphaAnimation);
  90. myHistoryAnimationSet.addAnimation(myHistoryAlphaAnimationConTime);
  91. myLayoutControl = new LayoutAnimationController(myHistoryAnimationSet);
  92. myLayoutControl.setDelay(0.1f);
  93. // myLayoutControl.setOrder(LayoutAnimationController.ORDER_NORMAL);
  94. myLayoutControl.setOrder(LayoutAnimationController.ORDER_REVERSE);
  95.  
  96. mHistoryDisplayList.setLayoutAnimation(myLayoutControl);

2.从以上的代码中我们可以发现。代码中定义动画的话,有个好处,就是比较灵活,可以根据我们的需要动态的更改动画的时间等属性。当然,你也会看到它代码的重用性非常的糟糕。

1)创建动画:其实就是new一个相应的动画就行了

2)然后就是设置动画的属性值,时间等

  1.    import android.view.animation.AlphaAnimation;
  2.  
  3.   AlphaAnimation alphaAnimation=new AlphaAnimation( 1f,0.5f);
  4. //动画时间
  5. alphaAnimation.setDuration(1000);
  6. //动画结束以后是否应用,false的话,会返回初始位置
  7. alphaAnimation.setFillAfter(true);
  8. //设置动画动作样式
  9. alphaAnimation.setInterpolator(this,android.R.anim.accelerate_decelerate_interpolator);

其他的也类似

  1. import android.view.animation.Animation;
  2. import android.view.animation.TranslateAnimation;
  3. TranslateAnimation translateAnimation = new TranslateAnimation(
  4. //第一个参数:相对于父类还是自身比例 第二个其实x坐标
  5. Animation.RELATIVE_TO_SELF, 0f,
  6. //起始y坐标
  7. Animation.RELATIVE_TO_SELF,0f,
  8. //结束x坐标
  9. Animation.RELATIVE_TO_SELF,0f,
  10. //结束y坐标
  11. Animation.RELATIVE_TO_SELF,10f);

3)如果你仅仅就需要一个简单的动画,那么你只需要在一个控件上start这个动画就行了,如下

  1. view.startAnimation(myAnimation_Alpha);

4)如果你希望把几个动画进行复合,这时候你需要借助

  1. myHistoryAnimationSet = new AnimationSet(true);
  1. myHistoryAnimationSet.addAnimation(myHistoryTranslateAnimation);

AnimationSet 其实就相当于一个动画容器,可以把不同的动画效果合为一个复合动画进行

animation- 动画效果实现(代码中)的更多相关文章

  1. Android中xml设置Animation动画效果详解

    在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation ...

  2. android中设置Animation 动画效果

    在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation ...

  3. 模仿百度首页“元宵节汤圆”动图,并实现360°不停旋转(CSS3的animation动画效果)

    模仿百度首页“元宵节汤圆”动图,并实现360°不停旋转(CSS3的animation动画效果) 效果图: 切图地址: https://ss1.bdstatic.com/5eN1bjq8AAUYm2zg ...

  4. 右上角鼠标滑过展开收缩动画效果js代码的演示页面

    http://files.cnblogs.com/files/tanlingdangan/top_right.rar.gz 右上角鼠标滑过展开收缩动画效果js代码的演示页面http://www.51x ...

  5. android Animation 动画效果介绍

    Android的animation由四种类型组成 XML中 alpha 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动 ...

  6. ios animation 动画效果实现

    1.过渡动画 CATransition CATransition *animation = [CATransition animation]; [animation setDuration:1.0]; ...

  7. Android Animation动画效果简介

    AlphaAnimation 淡入淡出动画  <alpha>A fade-in or fade-out animation. Represents an AlphaAnimation. a ...

  8. Animation(动画效果)

    Ctrl+6打开Animation窗口.选择物体,点击录制,保存录制文件后即为给该物体添加了动画效果. Animation可以修改某时间点的物体位置.大小.材质球上的所有属性.碰撞器等等. 可以通过修 ...

  9. H5中需要掌握的 ANIMATION 动画效果

    CSS3的动画在PC网页上或者APP上用得越来越多,比如H5页面的应用,目前在营销传播上的意义比较大,还有企业官网或者APP主要介绍也用得比较多,当然还有很多地方都用到.所以学习css的动画也迫在眉睫 ...

  10. UITableview reloadData Animation 动画效果

    http://blog.kingiol.com/blog/2013/10/22/uitableview-reloaddata-with-animation/ 运用到UITableview进行重新加载数 ...

随机推荐

  1. MySQL外键的介绍

    在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束. 1.MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种.不同的是MySQL会自动为所有表的主键进行索 ...

  2. 用Struts2搭建一个登录例子【本人亲测好用】

    今天尝试struts2的搭建,遇到不少的问题,终于一一解决,逛了很多地方,最终完成搭建 1.首先要下载struts2的一些组件,我下载的是版本2.3.4.1,Eclipse是4.6版本的.由于版本的不 ...

  3. MySql免安装版绿化版安装配置,附MySQL服务无法启动解决方案

    整理于:https://www.cnblogs.com/cenwei/p/6249856.html      我下载的MySQL版本是:mysql-5.6.15-winx64 一.解压文件 下载好My ...

  4. 大吉大利,晚饭吃鸡!——accept关闭问题

    假期收尾了,学芽子们都军训了.一群张一山和周冬雨在校内晃晃悠悠,说起来春风十里也就军训比较有意思.对于我这种一年追一部剧的人,显然是有点对不住.在我假期任务即将圆满之际,我开始放慢脚步寻找生活的美妙时 ...

  5. 紫书 例题 9-13 UVa 1220 (最大独立子集)

    这里的状态定义的非常的巧妙,d(i, 1)表示以i为根节点且选i的子树的最大独立子集 d(i, 0)表示以i为根节点且不选i的子树的最大独立子集 d(i, 1) = sum{ d(v, 0) | v是 ...

  6. 【VC++学习笔记三】控件自绘

    MFC应用程序中,大部分的控件类型都已经被定制好了,即便是修改,也只是小范围内的修改,而很多情况下,我们又需要对界面进行特殊定制,这时,最好的办法就是用CWnd类进行派生,自己生成新的窗体,在WM_P ...

  7. PyCharm激活方法

    1.激活码激活 1.修改hosts文件 将0.0.0.0 account.jetbrains.com添加到hosts文件最后,windows系统hosts文件路径为:C:\windows\system ...

  8. python + eclipse + django + postgresql 开发网站(一)

    一.配置开发环境 1.安装Python 载地址下:http://www.python.org/getit/

  9. SFINAE 模板替换失败而非报错的应用

    体会这一个例子,检查是否是一个类:P187

  10. 强制获取序列下一个值/当前值(oracle函数)

    原文链接--http://blog.csdn.net/qq525099302/article/details/47146393 为什么要使用函数来获取序列值请看这里 -- 创建获取序列下一个值的函数 ...