Android 动画学习(一)之View Animation

转载请注明出处http://blog.csdn.net/yegongheng/article/details/38366081


Android动画初步

        动画(Animation)在我们日常的Android开发工作当中使用得较为频繁,尤其对于Android游戏这个动画的集合体,掌握动画开发的重要性毋庸置疑。同样的,在Android应用开发中我们也经常使用动画效果来提升APP用户体验,比如应用中的图片的旋转,页面和页面之间的淡入淡出、左右渐入渐出切换效果等等。那从今天开始我们将进入Android 动画的学习阶段,我将带领大家学习并实现一些比较炫的动画效果。

动画的分类

        Android FrameWork向开发人员提供了丰富的API用于实现各种各样的动画效果,而若要对动画分类,一般可将Android动画分为以下两类的动画系统:

View Animation

       View Animation动画系统又可以分类成Tween Animation 和Frame Animation:
     Tween Animation
         Tween Animation是Android系统比较老的一种动画系统,它的特点是通过对场景里的对象不断做图像变换(渐变、平移、缩放、旋转)产生动画效果,且这种动画只适用于View对象。
      Frame Animation
          Frame Animation也是常用到的动画,它的原理比较简单,就是将一系列准备好的图片按照顺序播放,形成动画效果。

Property Animation

       Property Animation(属性动画)是在Android3.0(API 11)之后引入的一种动画系统,该动画提供了比View Animation更加丰富、强大和灵活的功能,Android官方推荐开发人员使用该动画系统来实现动画。Property Animation的特点是动态地改变对象的属性从而达到动画效果。该动画实现使用于包括View在内的任何对象。

初步了解了Android各种动画的分类及特点后,下面我们将一一对这些不同的动画系统进行深入地学习和分析。

Tween Animation

        上面我们了解到Tween Animation是Android中比较老的一种动画系统,且其只能实现对View对象动画设置,不过其虽然没有Property Aniamtion功能那么强大和灵活,但是使用Tween Animation依然能完成我们日常大部分的开发需求。灵活地掌握Tween Animation的使用方法,十分有必要。那Tween Animation实现View的动画,一般分为以下几种效果:
       Alpha:渐变透明动画效果;
       Scale:渐变尺寸伸缩动画效果;
       Translate:位置位移动画效果;
        Rotate:位置旋转动画效果。
接下来我们通过实例来一一学习如何实现以上几种动画效果,实现Tween Animation分为xml实现和代码实现,下面我们都会分别使用这两种方式来实现上面的的几种动画效果。首先我们使用xml方式来实现View的Alpha渐变透明动画效果,在项目目录结构中创建res/anim文件夹,然后在文件夹中创建view_animation_alpha.xml文件,文件中的代码如下:
<!-- 
  * android:interpolator:修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),
  *           decelerated(减速),repeated(重复),bounced(弹跳)等。
  * android:fromAlpha="0.0":设置动画开始时控件的透明度,0.0为透明,控件不显示,1.0为不透明,控件全部显示
  * android:toAlpha="1.0":设置动画结束时的控件的透明度
  * android:duration="2500":设置每一次动画持续的时间值
  * android:repeatCount="5":设置动画重复的次数
  * android:repeatMode="reverse":设置动画重复的模式,reverse为0.0 -> 1.0 -> 0.0,动画反复执行;
  * restart为0.0 -> 1.0, 0.0 -> 1.0,动画每次都重新开始执行	
 -->
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:fromAlpha="0.0" 
    android:toAlpha="1.0"
    android:duration="2500"
    android:repeatCount="5"
    android:repeatMode="reverse"
   />
xml文件中的属性在代码中都有详细的解释,这里就不重复说明了。定义完XML文件后,然后在代码中使用AnimationUtils类调用loadAnimation(context, id)方法来加载xml文件,具体代码如下:
/**
* xml文件加载图片渐变(Alpha)动画
*/
Animation mAnimation = AnimationUtils.loadAnimation(this, R.anim.view_animation_alpha);
上面是使用xml实现Alpha的动画效果,下面我们来看看如何在代码中实现Alpha的动画,很简单,只需要实例化一个AlphaAnimation对象,然后传递相关参数就行,具体代码如下:
/**
* 代码创建图片渐变(Alpha)动画
* 实例化AlphaAnimation对象:
* mAnimation = new AlphaAnimation(fromAlpha, toAlpha);
* fromAlpha:设置动画开始时控件的透明度,0.0为透明,控件不显示,1.0为不透明,控件全部显示
* toAlpha:设置动画结束时的控件的透明度
*/
Animation mAnimation = new AlphaAnimation(0.0f, 1.0f);
分别使用xml和代码实现Alpha动画后,最后我们为一个Imag
  • 12
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值