• 热门专题

Android学习日记22 Animation动画简介

作者:aiguozhe1991  发布日期:2014-03-27 20:15:44
Tag标签:简介  动画  日记  

  •   Animation动画主要有两种:帧动画(Frame Animation)和补间动画(Tween Animation)。
    补间动画主要包括对位置、角度、尺寸等属性的变化,而帧动画则是通过若干帧图片轮流切换显示的。

    1、帧动画
      按顺序显示事先准备好的图片,跟动漫类似。主要用到的类AnimationDrawable,每个帧都是AnimationDrawable对象。
    定义帧动画可以在代码直接进行。也可以通过XML文件定义,定义帧动画的文件存放在res/anim目录下。XML指定帧出现的顺序
    及每个帧的持续时间。

      帧动画XML主要标记和属性如下:


      需要强调的是:启动Frame Animation动画的代码rocketAnimation.start();不能在OnCreate()中,因为在OnCreate()中
    AnimationDrawable还没有完全的与ImageView绑定,在OnCreate()中启动动画,就只能看到第一张图片。这里实在拖曳事件中实现的。

      AnimationDrawable的主穴ky"http://www.it165.net/qq/" target="_blank" class="keylink">qq3vbeoyOfPwqO6PC9wPgo8cD48aW1nIHNyYz0="http://www.it165.net/uploadfile/files/2014/0327/20140327192038186.png" alt="" />
      

      帧动画使用例子

    完整帧动画XML(frame_ani.xml)代码:

     1 <?xml version="1.0" encoding="utf-8"?>
     2  <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
     3      android:oneshot="false">
     4     <item android:drawable="@drawable/fish3" android:duration="200" android:visible="true"/>
     5     <item android:drawable="@drawable/fish3" android:duration="200" android:visible="true"/>
     6     <item android:drawable="@drawable/fish4" android:duration="200" android:visible="true"/>
     7     <item android:drawable="@drawable/fish3" android:duration="200" android:visible="true"/>
     8     <item android:drawable="@drawable/fish4" android:duration="200" android:visible="true"/>
     9     <item android:drawable="@drawable/fish5" android:duration="200" android:visible="true"/>
    10     <item android:drawable="@drawable/fish6" android:duration="200" android:visible="true"/>
    11     <item android:drawable="@drawable/fish7" android:duration="200" android:visible="true"/>
    12     <item android:drawable="@drawable/fish8" android:duration="200" android:visible="true"/>
    13     <item android:drawable="@drawable/fish8" android:duration="200" android:visible="true"/>
    14  </animation-list>  

    启动帧动画JAVA代码:

    1                 @Override    
    2                 public void onClick(View v) {            //重写onClick方法
    3                     ImageView iv = (ImageView)findViewById(R.id.iv);
    4                     iv.setBackgroundResource(R.anim.frame_ani);
    5                     AnimationDrawable ad = (AnimationDrawable)iv.getBackground();
    6                     ad.start();        //启动AnimationDrawable
    7                 }

    点击按钮,启动帧动画,可以看见不同fish图片的切换,鱼儿在游动。

    2、补间动画
      补间动画作用于View视图,主要包括对View对象的位置、尺寸、旋转角度、透明度的变化。补间动画涉及的类主要有
    Animation、AnimationSet等。
      补间动画同帧动画可以在代码直接进行。也可以通过XML文件定义,推荐用XML,因为这样可读性比较高和利于扩展。
    XML文件存放在res/anim下。

      补间动画XML几种变化标记和属性如下:

      公有属性如下:

      

      补间动画使用例子:

    完整补间动画XML代码:

     1 <?xml version="1.0" encoding="utf-8"?><!-- XML的版本以及编码方式 -->
     2 <set xmlns:android="http://schemas.android.com/apk/res/android"> 
     3   <alpha
     4     android:fromAlpha="0.0" 
     5     android:toAlpha="1.0" 
     6     android:duration="6000" 
     7   /> <!-- 透明度的变换 -->
     8   <scale
     9     android:interpolator= "@android:anim/accelerate_decelerate_interpolator" 
    10     android:fromXScale="0.0" 
    11     android:toXScale="1.0" 
    12     android:fromYScale="0.0" 
    13     android:toYScale="1.0" 
    14     android:pivotX="50%" 
    15     android:pivotY="50%"
    16     android:fillAfter="false" 
    17     android:duration="9000"
    18   /> <!-- 尺寸的变换 -->
    19   <translate
    20     android:fromXDelta="30" 
    21     android:toXDelta="0" 
    22     android:fromYDelta="30"
    23     android:toYDelta="0" 
    24     android:duration="10000" 
    25   /> <!-- 尺位置的变换 -->
    26   <rotate
    27     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
    28     android:fromDegrees="0" 
    29     android:toDegrees="+360" 
    30     android:pivotX="50%" 
    31     android:pivotY="50%"
    32     android:duration="10000"
    33   /> <!-- 旋转变换 -->
    34 </set>

    启动补间动画JAVA代码:

    1             @Override
    2             public void onClick(View v) {                //重写onClick方法
    3                 ImageView iv = (ImageView)findViewById(R.id.iv);
    4                 Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.tween_ani);
    5                 iv.startAnimation(animation);            //启动动画            
    6             }

    点击按钮,启动补间动画,可以看见螃蟹从中心慢慢旋转显现出来。

        

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规