Android——动画之补间动画(Tween动画)
来源:互联网 发布:编程工具 知乎 编辑:程序博客网 时间:2024/05/01 22:13
一、Android动画分类
1. 补间动画(Tween动画)
完成视图简单的变化,比如放大,缩小,旋转,透明度的渐变等等。
2.帧动画(Frame动画)
帧动画是在短时间内连续显示一系列图像的过程,其显示效果是一个移动或者变化的对象。
二、Tween动画分类
1.渐变动画AlphaAnimation
2.移动动画TranslateAnimation
3.缩放动画ScaleAnimation(以某点为中心缩放视图)
4.旋转动画RotateAnimation(以某点为中心旋转视图)
三、Tween动画的创建
假设 ImageView iv = (ImageView)findViewById(R.id.xxx);
定义一个Animation anim = null;
1. 通过xml方式创建动画
- 把设置的动画属性写到xml中
(1)新建xml文件,ResourceType 为TweenAnimation,选择Tween动画的某一类(alpha等)
<alpha android:fromAlpha = "1" android.toAlpha = "0" 完全透明 android:fillAfter = "true"动画完了是否保持结束时的状态 android:duration = "1000" 1000ms</alpha>其他类型Tween动画的xml属性
(alpha等Tween动画公用的属性 android:interpolator="@android:anim/**",各种加速器,如先减速后加速等)
<translate android:fromXDalta="0" android:toXDelta ="50"向右 android:fromYDalta="0" android:toYDelta="100"向下 android:duration="1000" android:fillAfter="false"</translate>
<scale android:fromXScale="1" android:fromYScale="1" android:toXScale="0" 缩小 2就是放大为原来的2倍 android:toYScale="0" android:pivotX="50%" 锚点 android:pivotY="50%" android:fillAfter="true" android:duration="1000"</scale>
<rotate android:fromDegrees="0" android:toDegrees="180" android:pivotX="50%" android:pivotY="50%" android:fillAfter="true" android:duration="1000"</rotate>
<pre name="code" class="html"><!-- 将Tween各类动画组合在一起 --><set xmlns:android="xxxx"> <alpha .... </alpha> <scale android:startOffset="1000" 1000ms后执行 ... </scale> <其他tween类动画 </***></set>
- 利用AnimationUtils类加载xml
anim=AnimationUtils.loadAnimation(context,动画xml文件ID);如R.anim.xxx //anim为在res下新建的目录
- 给布局设置动画
iv.startAnimation(anim);
2. 通过代码动态添加
- 构造对应的动画类(AlphaAnimation、TranslateAnimation等)
(1)定义Alpha动画
AlphaAnimation anim=new AlphaAnimation(1,0);anim.setDuration(1000);anim.setFillAfter(true);(2)移动动画
TranslateAnimation anim = new TranslateAnimation(fromXdelta,toXDelta,fromYDelta,toYDelta);anim.setDuration(1000);anim.setFillAfter(true);anim.setInterpolator(context,android.R.anim.xxx);(3)形变动画Scale
ScaleAnimation scale=new ScaleAnimation(fromX,toX,fromY,toY,pivotXType,pivotX,//pivotXType为ScaleAnimation.RELATIVE_TO_SELF,即pivotX(0~1)是相对它自己而言的<pre name="code" class="java">pivotYType,pivotY);
(4)旋转动画Rotate
RotateAnimation rotate=new RotateAnimation(formDegrees,toDegrees,pivotXType,pivotXValue,pivotYType,pivotYValue);//pivotXType与Scale动画意义一样,值可谓RotateAnimation.RELATIVE_TO_SELFanim.setDuration(1000);anim.setFillAfter(true);anim.setInterpolator(context,android.R.anim.xxx);(5)set(动画的组合)
AnimationSet anim=new AnimationSet(是否共享加速器false);anim.setFillAfter(true);anim.setDuration(1000);AlphaAniamtion alpha = new AlphaAnimation(...)alpha.setXXX(...);ScaleAnimation scale = new ScaleAnimation(...);scale.setXXX(...);scale.setStartOffset(1000);//延迟1000ms执行anim.addAnimation(alpha);anim.addAnimation(scale);
- 设置动画参数
- 给布局设置动画
四、动画的监听 AnimationListener接口
anim.setAnimationListener(new AnimationListener listener{ onAnimationStart(Animation animation){ //动画开始 } onAnimationEnd(Animation animation){ //动画结束 } onAnimationRepeat(Animation animation){ //动画重播 //anim.setRepeatCount(X);可以设置动画重播次数 -1为无限重播 }});
动画开始——动画重播——......——动画重播——动画结束
0 0
- android动画之:补间动画(Tween动画)
- Android——动画之补间动画(Tween动画)
- Android动画——补间动画(Tween Animation)
- Android tween动画(补间动画)
- Android笔记 动画之tween(补间)动画demo
- Android 动画系列之补间(Tween)动画详解
- Android动画效果之Tween Animation(补间动画)
- android 动画实现之 Tween Animation(补间动画)
- Android动画效果之Tween Animation(补间动画)
- Android 动画--补间动画(Tween Animation)
- Android-Animation动画之Tween Animation补间动画
- Android动画之补间动画(Tween Animation)
- Android动画之补间动画(Tween Animation)
- android补间动画(Tween Animation)
- android 补间(Tween)动画
- Android 学习之补间(Tween)动画
- Android基础篇之补间动画(Tween)
- Android开发之Tween(补间动画)
- .net利用nuget管理类库包——各系统交互
- 判断字符串是否对称
- 2014我已走过
- 分支-20. 计算符号函数的值(10)
- tomcat服务器值HTTP请求
- Android——动画之补间动画(Tween动画)
- Javascript 中“call”的使用
- 数据挖掘--pagerank算法实现
- JW Player 网页媒体播放利器播放视音频
- java创建file
- RDIFramework.NET ━ 9.9 角色权限管理 ━ Web部分
- 第18、19讲 项目3 胖子伤不起
- poj 数论 Semi-prime H-numbers
- linux sed命令详解