android学习日记22--Animation动画简介
2014-03-26 20:40
423 查看
Animation动画主要有两种:帧动画(Frame Animation)和补间动画(Tween Animation)。
补间动画主要包括对位置、角度、尺寸等属性的变化,而帧动画则是通过若干帧图片轮流切换显示的。
1、帧动画
按顺序显示事先准备好的图片,跟动漫类似。主要用到的类AnimationDrawable,每个帧都是AnimationDrawable对象。
定义帧动画可以在代码直接进行。也可以通过XML文件定义,定义帧动画的文件存放在res/anim目录下。XML指定帧出现的顺序
及每个帧的持续时间。
帧动画XML主要标记和属性如下:
![](http://images.cnitblog.com/i/602984/201403/262025574051823.png)
需要强调的是:启动Frame Animation动画的代码rocketAnimation.start();不能在OnCreate()中,因为在OnCreate()中
AnimationDrawable还没有完全的与ImageView绑定,在OnCreate()中启动动画,就只能看到第一张图片。这里实在拖曳事件中实现的。
AnimationDrawable的主要方法如下:
![](http://images.cnitblog.com/i/602984/201403/262028348437192.png)
帧动画使用例子
完整帧动画XML(frame_ani.xml)代码:
启动帧动画JAVA代码:
点击按钮,启动帧动画,可以看见不同fish图片的切换,鱼儿在游动(自己脑补哈)。
![](http://images.cnitblog.com/i/602984/201403/262029485935994.png)
2、补间动画
补间动画作用于View视图,主要包括对View对象的位置、尺寸、旋转角度、透明度的变化。补间动画涉及的类主要有
Animation、AnimationSet等。
补间动画同帧动画可以在代码直接进行。也可以通过XML文件定义,推荐用XML,因为这样可读性比较高和利于扩展。
XML文件存放在res/anim下。
补间动画XML几种变化标记和属性如下:
![](http://images.cnitblog.com/i/602984/201403/262034318435727.png)
公有属性如下:
![](http://images.cnitblog.com/i/602984/201403/262034454364374.png)
补间动画使用例子:
完整补间动画XML代码:
启动补间动画JAVA代码:
点击按钮,启动补间动画,可以看见螃蟹从中心慢慢旋转显现出来。
![](http://images.cnitblog.com/i/602984/201403/262039309214990.png)
补间动画主要包括对位置、角度、尺寸等属性的变化,而帧动画则是通过若干帧图片轮流切换显示的。
1、帧动画
按顺序显示事先准备好的图片,跟动漫类似。主要用到的类AnimationDrawable,每个帧都是AnimationDrawable对象。
定义帧动画可以在代码直接进行。也可以通过XML文件定义,定义帧动画的文件存放在res/anim目录下。XML指定帧出现的顺序
及每个帧的持续时间。
帧动画XML主要标记和属性如下:
![](http://images.cnitblog.com/i/602984/201403/262025574051823.png)
需要强调的是:启动Frame Animation动画的代码rocketAnimation.start();不能在OnCreate()中,因为在OnCreate()中
AnimationDrawable还没有完全的与ImageView绑定,在OnCreate()中启动动画,就只能看到第一张图片。这里实在拖曳事件中实现的。
AnimationDrawable的主要方法如下:
![](http://images.cnitblog.com/i/602984/201403/262028348437192.png)
帧动画使用例子
完整帧动画XML(frame_ani.xml)代码:
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/fish1" android:duration="200" android:visible="true"/> <item android:drawable="@drawable/fish1" android:duration="200" android:visible="true"/> <item android:drawable="@drawable/fish2" android:duration="200" android:visible="true"/> <item android:drawable="@drawable/fish3" android:duration="200" android:visible="true"/> <item android:drawable="@drawable/fish4" android:duration="200" android:visible="true"/> <item android:drawable="@drawable/fish5" android:duration="200" android:visible="true"/> <item android:drawable="@drawable/fish6" android:duration="200" android:visible="true"/> <item android:drawable="@drawable/fish7" android:duration="200" android:visible="true"/> <item android:drawable="@drawable/fish8" android:duration="200" android:visible="true"/> <item android:drawable="@drawable/fish8" android:duration="200" android:visible="true"/> </animation-list>
启动帧动画JAVA代码:
@Override public void onClick(View v) { //重写onClick方法 ImageView iv = (ImageView)findViewById(R.id.iv); iv.setBackgroundResource(R.anim.frame_ani); AnimationDrawable ad = (AnimationDrawable)iv.getBackground(); ad.start(); //启动AnimationDrawable }
点击按钮,启动帧动画,可以看见不同fish图片的切换,鱼儿在游动(自己脑补哈)。
![](http://images.cnitblog.com/i/602984/201403/262029485935994.png)
2、补间动画
补间动画作用于View视图,主要包括对View对象的位置、尺寸、旋转角度、透明度的变化。补间动画涉及的类主要有
Animation、AnimationSet等。
补间动画同帧动画可以在代码直接进行。也可以通过XML文件定义,推荐用XML,因为这样可读性比较高和利于扩展。
XML文件存放在res/anim下。
补间动画XML几种变化标记和属性如下:
![](http://images.cnitblog.com/i/602984/201403/262034318435727.png)
公有属性如下:
![](http://images.cnitblog.com/i/602984/201403/262034454364374.png)
补间动画使用例子:
完整补间动画XML代码:
<?xml version="1.0" encoding="utf-8"?><!-- XML的版本以及编码方式 --> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="6000" /> <!-- 透明度的变换 --> <scale android:interpolator= "@android:anim/accelerate_decelerate_interpolator" android:fromXScale="0.0" android:toXScale="1.0" android:fromYScale="0.0" android:toYScale="1.0" android:pivotX="50%" android:pivotY="50%" android:fillAfter="false" android:duration="9000" /> <!-- 尺寸的变换 --> <translate android:fromXDelta="30" android:toXDelta="0" android:fromYDelta="30" android:toYDelta="0" android:duration="10000" /> <!-- 尺位置的变换 --> <rotate android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:fromDegrees="0" android:toDegrees="+360" android:pivotX="50%" android:pivotY="50%" android:duration="10000" /> <!-- 旋转变换 --> </set>
启动补间动画JAVA代码:
@Override public void onClick(View v) { //重写onClick方法 ImageView iv = (ImageView)findViewById(R.id.iv); Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.tween_ani); iv.startAnimation(animation); //启动动画 }
点击按钮,启动补间动画,可以看见螃蟹从中心慢慢旋转显现出来。
![](http://images.cnitblog.com/i/602984/201403/262039309214990.png)
![](http://images.cnitblog.com/i/602984/201403/262039459996150.png)
相关文章推荐
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- Android 动画学习(一)之View Animation
- Android Animation学习(三) ApiDemos解析:XML动画文件的使用
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- Android动画学习(一)——Android动画系统框架简介
- Android 动画学习(一)之View Animation
- Android动画学习笔记-Android Animation
- Android Animation学习(五) ApiDemos解析:容器布局动画 LayoutTransition
- Android 动画学习(一)之View Animation
- Android学习篇章17-动画1Frame动画AnimationDrawable
- Android动画学习笔记-Android Animation
- 2014-11-8Android学习------Matrix使用方法--------动画Animation学习篇
- 2014-11-8Android学习------onLayout()方法和Layout()方法--------动画Animation学习篇
- Android动画学习笔记-Android Animation
- Android进阶学习-一般动画(使用Animation封装特效工具类2)
- Android动画学习笔记-Android Animation
- Android动画学习笔记-Android Animation
- android 动画学习1(简介与视图动画)