一、细说Animation五大基本动画
来源:互联网 发布:淘宝质检报告 编辑:程序博客网 时间:2024/06/06 04:58
在Android动画中,共有两种动画:View Animation(视图动画)和Property Animator(属性动画);
其中:
• View Animation包括Tween Animation(补间动画)和Frame Animation(帧动画);
• Property Animator包括ValueAnimator和ObjectAnimation;
首先,直观上,他们有如下三点不同:
1、引入时间不同:View Animation是API Level 1就引入的。Property Animation是API Level 11引入的,即Android 3.0才开始有Property Animation相关的API。 2、所在包名不同:View Animation在包android.view.animation中。而Property Animation API在包android.animation中。3、动画类的命名不同:View Animation中动画类取名都叫XXXXAnimation,而在Property Animator中动画类的取名则叫XXXXAnimator
我们先说View Animation(视图动画)中的Tween Animation(补间动画)
Scale:缩放
xml代码:
<scale xmlns:android="http://schemas.android.com/apk/res/android" android:fromXScale="1.0" android:fromYScale="1.0" android:toXScale="2" android:toYScale="2" android:pivotX="50%p" android:pivotY="50%p" android:duration="2000" android:fillAfter="false" android:repeatCount="2" android:repeatMode="reverse"></scale>
Java代码:
ImageView ivScale = (ImageView) findViewById(R.id.ivScale);Animation mAnimationScale = AnimationUtils.loadAnimation(this, R.anim.scale);//缩放ivScale.startAnimation(mAnimationScale);• android:fromXScale=”value”:在缩放开始的那一刹那,X方向相对于原始状态的大小;表示缩放开始的那一刹那,以原始画面value倍大小开始缩放;是float型。例如某ImageView的宽度为200px,value为1.2,则表示缩放初始的刹那,ImageView的宽度为200*1.2=240px。• android:toXScale=”value”:在缩放结束的一刹那,X方向相对于原始状态的大小;是float型。例如某ImageView的宽度为200px,value为3.0;则表示缩放结束的刹那,ImageView的宽度为200*3=600px• android:fromYScale:理解同fromXScale。• android:toYScale:理解同toXScale。• android:pivotX=”value”:X方向的缩放坐标,可以是数值value、百分数value%、百分数value%p三种样式,比如50、50%、50%p。50表示以目标控件的左上角为原点,X方向坐标为50px为基准开始缩放;50%表示以缩放控件的左上角为原点,X方向坐标为自身宽度的50%为基准开始缩放;50%p表示在当前的左上角加上父控件宽度的50%做为起始点x轴坐标。• android:pivotY:理解同android:pivotX。• android:duration="value":表示整个缩放过程经历的时间,单位是毫秒(ms)。• android:fillAfter:值为boolean值, 为true,动画结束时,将保持动画缩放结束的刹那得大小,即上面绿底红字加粗的200*3=600px的大小。为false,则是恢复至原始大小。• android:fillBefore作用与fillAfter相同。一般二者用一个即可。• android:repeatCount值为int型,表示动画 重复次数(大于1)• android:repeatMode重复类型,有reverse和restart两个值,reverse表示倒序回放,restart表示正序动画,必须与repeatCount一起使用才能看到效果动画缩放过程:从初始状态fromX/YScale,以(pivotX/Y)为基准点,经过duration时间,缩放至toX/YScale,可反复执行repeatCount次,最后根据fillAfter确定是保持对象的原始状态还是缩放过后的状态。
Alpha:透明度
xml代码:
<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="2500" android:fillBefore="false" android:fromAlpha="1.0" android:repeatCount="1" android:repeatMode="reverse" android:toAlpha="0"></alpha>
Java代码:
Animation mAnimationAlpha = AnimationUtils.loadAnimation(this, R.anim.myalpha);//透明度ivScale.startAnimation(mAnimationAlpha);• android:fromAlpha 动画起始透明度,从0.0 --1.0 ,0.0表示全透明,1.0表示完全不透明• android:toAlpha 动画结束时的透明度,也是从0.0 --1.0 ,0.0表示全透明,1.0表示完全不透明 动画透明度过程:从初始状态fromAlpha,在duration时间内,按照repeatMode顺序过渡到toAlpha,总共执行repeatCount次,执行完后根据fillBefore判断是保持原始状态还是最终状态。
Rotate:旋转
xml代码:
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees ="0" android:toDegrees="720" android:pivotX="50%" android:pivotY="50%" android:duration="2000" android:fillAfter="true" android:repeatMode="restart" android:repeatCount="0"></rotate>
Java代码:
mAnimationRotate = AnimationUtils.loadAnimation(this, R.anim.rotate);//旋转ivScale.startAnimation(mAnimationRotate);• android:fromDegree 旋转动画起始角度,取值从0开始的任意int型;• android:toDegree 旋转动画旋转的角度数,取值从0开始的任意int型,大于0表示顺时针旋转,小于0表示逆时针旋转;• android:pivotx理解同scale的pivotx; android:pivoty理解同scale的pivoty;• android:duration理解同scale的duration; android:fillAfter理解同scale的fillAfter;• android:repeatMode理解同scale的repeatMode;• android:repeatCount理解同scale的repeatCount;动画旋转过程:,从初始状态fromDegree,以以(pivotX/Y)为旋转中心,在duration时间范围内,按照repeatMode顺序过渡到toDegree ,总共执行repeatCount此,完成后根据fillAfter的状态确定是保持动画的原始状态还是动画最终状态。
translate:移动/平移
xml代码:
<translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="100" android:toYDelta="100" android:duration="2000" android:fillAfter="true"></translate>
Java代码:
Animation mAnimationTranslate = AnimationUtils.loadAnimation(this, R.anim.translate);//移动ivScale.startAnimation(mAnimationTranslate); • android:fromXDelata 起始点X轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p,理解同scale的pivotX• android:toXDelata动画结束时,控件的X坐标;• android:fromYDelata 起始点Y轴坐标,可以是数值、百分数、百分数p 三种样式,比如 50、50%、50%p,理解同scale的pivotY• android:toYDelata动画结束时,控件的Y坐标;动画移动/平移过程:从初始状态fromX/YDelta在duration时间内移动到toX/YDelta位置,然后根据fillAfter的状态确定是保持动画的原始状态还是动画最终状态。
set:几种集合的效果
xml代码:
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1500" android:fillAfter="true" android:repeatMode="restart" android:repeatCount="2"> <alpha android:fromAlpha="0.1" android:toAlpha="1.0"/> <rotate android:fromDegrees="0" android:toDegrees="540" android:pivotX="50%" android:pivotY="50%"/> <scale android:fromXScale="0" android:fromYScale="0" android:pivotY="50%" android:pivotX="50%" android:toXScale="1.25" android:toYScale="1.25"/> <translate android:fromYDelta="0" android:fromXDelta="0" android:toXDelta="60" android:toYDelta="60"/></set>
Java代码:
Animation mAnimationSet = AnimationUtils.loadAnimation(this, R.anim.set_animation);//综合ivScale.startAnimation(mAnimationSet);
View Animation(视图动画)中的Tween Animation(补间动画)到此讲解完毕
阅读全文
0 0
- 一、细说Animation五大基本动画
- Animation五种基本动画解析
- CoreAnimation 细说动画(一)
- Animation动画详解一
- 骨骼动画(Skeletal Animation)(一)
- 一、属性动画(Property Animation)
- Android动画-Property Animation(一)
- Android Animation 动画(一)
- Animation动画详解(五)——ValueAnimator高级进阶(一)
- Animation动画详解(五)——ValueAnimator高级进阶(一)
- 动画效果 --Animation 总汇(动画专题研究一)
- Android Animation 动画(一)--Tween动画
- Animation动画(一) ---- Tween 场景动画
- Android属性动画---Property Animation(五)
- Core Animation(五)显式动画
- 五 iOS之 Core Animation(核心动画)
- CSS3 动画Animation的8大属性
- android-Animation 四种基本动画
- [LeetCode] DP 之 Edit Distance
- node readline模块小例子
- form表单的底部居中
- 【Python基础】1.4.6 Turtle实例——用Python作画(1)
- query EasyUI tree 加载远程数据 java实现
- 一、细说Animation五大基本动画
- 现代操作系统学习(1)———引论
- Bootstrap常用设计样例
- Effective STL学习笔记-条款36
- css布局实现:左侧固定,右侧占满剩余的全部
- oracle中sys用户和system用户的区别
- sticky效果实现思路
- 修改PUBLIC 网卡子网掩码导致RAC的 VIP/SCAN IP的解决方法
- .NET Micro Framework介绍