• android学习日记22--Animation动画简介



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

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

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


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

      AnimationDrawable的主要方法如下:


      

      帧动画使用例子

    完整帧动画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/fish1" android:duration="200" android:visible="true"/>
     5     <item android:drawable="@drawable/fish1" android:duration="200" android:visible="true"/>
     6     <item android:drawable="@drawable/fish2" 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             }

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

        

  • 相关阅读:
    UIActivityIndicatorView的详细使用
    iOS开发多线程篇—GCD的常见用法
    UIScrollView的属性总结
    关于UIView的autoresizingMask属性的研究
    Robot FrameWork 教程链接
    数据恢复基础知识
    数据恢复基础知识
    selenium webdriver 学习笔记(三)
    selenium webdriver 学习笔记(二)
    selenium webdriver 学习笔记(一)
  • 原文地址:https://www.cnblogs.com/aiguozhe/p/3626943.html
Copyright © 2020-2023  润新知