APIDemo学习笔记——Android上几种简单的Animation使用方法(一)

在API Demo的View->Animation下可以找到四个Animation的Demo,第一个3D Translate比较复杂,最后再讲,先讲第2个Interpolator。该Activity对应的是view包内的Animation3.java,和layout的animation_3.xml。

界面的布局不加解释了,就一个Spinner和一个TextView。不是本文内容。

主要解释下几个重点语句。

 

初始化Animation,从类的名字可以看出是一个变换View的位置的动画,参数起点横坐标,终点横坐标,起点纵坐标,终点纵坐标。

[java]  view plain copy
  1. Animation a = new TranslateAnimation(0.0f,  
  2.                 targetParent.getWidth() - target.getWidth() - targetParent.getPaddingLeft() -  
  3.                 targetParent.getPaddingRight(), 0.0f, 0.0f);  
 

下面是动画的参数设置,我加上了注释

 

  1. a.setDuration(1000);//设置动画所用的时间  
  2.         a.setStartOffset(300);//设置动画启动的延时  
  3.         //设置重复模式,RESTART为结束后重新开始,REVERSE为按原来的轨迹逆向返回  
  4.         a.setRepeatMode(Animation.RESTART);  
  5.         //设置重复次数,INFINITE为无限  
  6.         a.setRepeatCount(Animation.INFINITE);  
  7.         //根据用户在Spinner的选择设置target的进入的方式  
  8.         switch (position) {  
  9.             case 0:  
  10.                 //加速进入  
  11.                 a.setInterpolator(AnimationUtils.loadInterpolator(this,  
  12.                         android.R.anim.accelerate_interpolator));  
  13.                 break;  
  14.             case 1:  
  15.                 //减速进入  
  16.                 a.setInterpolator(AnimationUtils.loadInterpolator(this,  
  17.                         android.R.anim.decelerate_interpolator));  
  18.                 break;  
  19.             case 2:  
  20.                 //加速进入.与第一个的区别为当repeatMode为reverse时,仍为加速返回原点  
  21.                 a.setInterpolator(AnimationUtils.loadInterpolator(this,  
  22.                         android.R.anim.accelerate_decelerate_interpolator));  
  23.                 break;  
  24.             case 3:  
  25.                 //先往后退一点再加速前进  
  26.                 a.setInterpolator(AnimationUtils.loadInterpolator(this,  
  27.                         android.R.anim.anticipate_interpolator));  
  28.                 break;  
  29.             case 4:  
  30.                 //减速前进,冲过终点前再后退  
  31.                 a.setInterpolator(AnimationUtils.loadInterpolator(this,  
  32.                         android.R.anim.overshoot_interpolator));  
  33.                 break;  
  34.             case 5:  
  35.                 //case 3,4的结合体  
  36.                 a.setInterpolator(AnimationUtils.loadInterpolator(this,  
  37.                         android.R.anim.anticipate_overshoot_interpolator));  
  38.                 break;  
  39.             case 6:  
  40.                 //停止前来回振几下  
  41.                 a.setInterpolator(AnimationUtils.loadInterpolator(this,  
  42.                         android.R.anim.bounce_interpolator));  
  43.                 break;  
  44.         }  
  45.         //让target开始执行这个动画  
  46.         target.startAnimation(a);  
  47.     }  

这里使用的是Android已预设的一些动作,我们也可以自定义XML来实现更好看的动画效果的,这个下一篇再讲。

除了TranslationAnimation,还有AlphaAnimation、RotateAnimation、ScaleAnimation,使用这几个基体动作的组合,可以形成一系列复杂的动画效果。具体用法请查看SDK。

整个都比较简单,就一个函数的调用,还不懂的看一下API的注释和SDK文档,没什么难理解的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值