码迷,mamicode.com
首页 > 移动开发 > 详细

一次搞定 Android 基本动画 大清理

时间:2016-05-06 16:24:46      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:


1.Tween Animation 变换动画

Alpha:渐变透明度动画
Scale:渐变尺寸缩放动画
Translate:位置移动动画
Rotate:旋转动画

共同属性:
(1)Duration:动画持续时间(单位:毫秒)
(2)fillAfter:设置为true,动画转化在动画结束后被应用
(3)fillBefore:设置为true,动画转化在动画开始前被应用
(4)interpolator:动画插入器(加速、减速插入器)
(5)repeatCount:动画重复次数
(6)repateMode:顺序重复/倒序重复
(7)startOffset:动画之间的时间间隔(组合动画常用)

Animation 实现方式
(1)配置文件(/res/anim)- alpha、scale、translate、rotate
(2)Java代码实现 - AlphaAnimation、ScaleAnimation、TranslateAnimation、RotateAnimation

2.Frame Animation 帧动画

3.Layout Animation 布局动画

4.Property Animation 属性动画
Tween Animation(变换动画)
1.共同属性:
(1)Duration:动画持续时间(单位:毫秒)
(2)fillAfter:设置为true,动画转化在动画结束后被应用
(3)fillBefore:设置为true,动画转化在动画开始前被应用
(4)interpolator:动画插入器(加速、减速插入器)
(5)repeatCount:动画重复次数
(6)repateMode:顺序重复/倒序重复
(7)startOffset:动画之间的时间间隔(组合动画常用)
Tween Animation(变换动画)
1.共同属性:
(1)Duration:动画持续时间(单位:毫秒)
(2)fillAfter:设置为true,动画转化在动画结束后被应用
(3)fillBefore:设置为true,动画转化在动画开始前被应用
(4)interpolator:动画插入器(加速、减速插入器)
(5)repeatCount:动画重复次数
(6)repateMode:顺序重复/倒序重复
(7)startOffset:动画之间的时间间隔(组合动画常用)
1.变换动画(TweenAnimation):
<1>种类:
Alpha渐变透明度动画
Scale渐变尺寸动画
Translate位置移动动画
Rotate旋转动画
<2>共同属性:
Duration:动画持续时间(ms)
fillAfter 设置为true,动画转化在动画结束后被应用
fillBefore 设置为true,动画转化在动画开始前被应用
interpolator 动画插入器(加速/减速)
repeatCount 重复次数
repateMode 顺序重复/倒序重复
startOffset 动画之间的时间间隔
<3>实现方式:
配置文件(res/anim)- alpha,scale,translate,rotate(适用于固定场合)
Java代码实现-AlphaAnimation,ScaleAnimation,TranslateAnimation,RotateAnimation
2.属性动画(PropertyAnimation):
3.帧动画(FrameAnimation):
4.布局动画(LayoutAnimation):
1.Tween Animation 变换动画 (动画局限性大,只是不断调用系统的ondraw()方法,浪费系统资源,不易监听交互) 

Alpha:渐变透明度动画
Scale:渐变尺寸缩放动画
Translate:位置移动动画
Rotate:旋转动画

共同属性:
(1)Duration:动画持续时间(单位:毫秒)
(2)fillAfter:设置为true,动画转化在动画结束后被应用
(3)fillBefore:设置为true,动画转化在动画开始前被应用
(4)interpolator:动画插入器(加速、减速插入器)
(5)repeatCount:动画重复次数
(6)repateMode:顺序重复/倒序重复
(7)startOffset:动画之间的时间间隔(组合动画常用)

Animation 实现方式
(1)配置文件(/res/anim)- alpha、scale、translate、rotate
(2)Java代码实现 - AlphaAnimation、ScaleAnimation、TranslateAnimation、RotateAnimation

2.Frame Animation 帧动画

3.Layout Animation 布局动画

4.Property Animation 属性动画

四种基础动画实现

AlphaAnimation(透明度动画)

透明度动画。
fromAlpha 动画起始时透明度
toAlpha 动画终止时透明度
0.0 表示完全透明 1.0 表示完全不透明

ScaleAnimation(缩放动画)

(1)fromX,toX分别是起始和结束时x坐标上的伸缩尺寸
(2)fromY,toY分别是起始和结束时y坐标上的伸缩尺寸.
(3)pivotX,pivotY分别为伸缩动画相对于x,y坐标开始的位置

TranslateAnimation(位移动画)

(1)fromXDelta,fromYDelta分别是起始时X,Y的坐标
(2)toXDelta,toYDelta分别是结束时X,Y的坐标

RotateAnimation(旋转动画)

(1)fromDegrees起始的角度
(2)toDegrees终止的角度
(3)pivotX,pivotY分别为旋转动画相对于x,y的坐标开始位置


创建动画配置文件
Alpha:
<set>
--<alpha android:duration="1000" fromAlpha=0.1 toAlpha=1.0/>
</set>
Scale:
<set>
------<scale duration=2000 fillAfter=false 
--------------fromXScale=0.0 fromYScale=0.0
---------------interpolator=XXxxxx
---------------pivotX=0% pivotY=0% 从图片中心位置缩放
---------------toXScale=1.0 toYScale=1.0/>
</set>
translate:
配置duration=2000 fromXDelta=10 fromYDelta=10起点
--------------------toXDelta=100 toYDelta=100终点
rotate:
set标签中加入rotate标签设置fromDegrees toDegrees起始角度,末尾角度
--------------------------旋转中心pivotX=50% pivotY=50%

特效示例

Activity切换动画:
使用overridePendingTransition方法.
参数:第二个Activity进入动画,第一个Activity退出时的动画

LayoutAnimation(布局动画)

为View Groups添加动画,使用LayoutAnimationController
LayoutAnimation可以用来为View Groups添加动画,并按照预定的顺序,把一个动画(或者动画集合)应用到View Group中的每一个子View中,可以使用LayoutAnimationController来指定一个应用到ViewGroup中的每一个子View中的动画

//布局动画使用
LayoutAnimationController lac=new LayoutAnimationController(AnimationUtils.loadAnimation(this,R.anim.zoom_in));
lac.setOrder(LayoutAnimationController.ORDER_RANDOM);//指定动画顺序
listView.setLayoutAnimation(lac);//加载布局动画
listView.startLayoutAnimation();

FrameAnimation(逐帧动画)

使用animation-list标签来分组一个item标签集合,定义要显示的图片,指定显示它的时间(以毫秒为单位)
FrameAnimation 逐帧动画 在drawable文件下新建一个xml(例如anim_list.xml)文件,使用animation-list标签来分组一个item标签集合。

//倒叙重复REVERSE   正序重复RESTART
alphaAnimation.setRepeatMode(Animation.REVERSE);
组合动画——续播一:两个加载器,并给第一个动画设置监听器(复写三个方法,在onAnimationEnd()中开启第二个动画的加载器)
Activity切换动画
使用overridePendingTransition方法
参数: 第二个Activity进入时的动画
-------第一个Activity退出时的动画
startActivity(intent);
overridePendingTransition(R.anim.zoom_in,R.anim.zoom_out)
动画可以设置监听器onAnimationListener,在这个监听器中有3个方法,
我们可以根据我们要实现的功能去实现不同的逻辑
Animation对象可以设置动画监听器
.setAnimationListener()监听动画开始或者结束时的事件
在配置文件中设置startOffset 可以延迟播放
逐帧动画FrameAnimation
用一个<animation-list>标签包含
多个<item android:drawable=@drawable/one|two|tree duration=500>标签
LayoutAnimation布局动画
在布局动画控制器中添加一个动画
LayoutAnimationController lac=new LayoutAnimationController (AnimationUtils.loadAniamtion(this,R.anim.zoom_in))
设置加载顺序
lac.setOrder(LayoutAnimationController.ORDER_RANDOM)
ListView加载动画
listView.setLayoutAnimation(lac)
启动动画
listView.startLayoutAnimation()

一次搞定 Android 基本动画 大清理

标签:

原文地址:http://blog.csdn.net/fang323619/article/details/51331143

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!