android补间动画(TweenAnimation)
来源:互联网 发布:linux c opengl 编辑:程序博客网 时间:2024/06/04 18:20
一、AlphaAnimation(渐变动画)
//渐变动画private void startAlphaAnimation () { /** * 创建渐变动画对象 * 参数1:从一个透明值 * 参数2:到另外一个透明值 * 参数取值范围0~1 * 0:全不透明 * 1:全透明 */ AlphaAnimation aa = new AlphaAnimation (1,0); //设置动画播放时长 aa.setDuration (1000); //设置保持动画结束后的动作 aa.setFillAfter (true); //设置保持动画结束前的动作 //aa.setFillBefore (true); //设置延时之后再启动动画 aa.setStartOffset (500); //设置重复播放动画的次数,如果为负数的话,则一直重复播放 aa.setRepeatCount (3); /** * 设置重复播放的模式,参数有2个Animation.REVERSE、Animation.RESTART * Animation.REVERSE,紧接着播放动画 * Animation.RESTART,回到开始的状态再播放动画 */ aa.setRepeatMode (Animation.RESTART); //播放动画 iv_anim.startAnimation (aa); //监听动画的状态,其它动画的监听也是一样的 aa.setAnimationListener (new Animation.AnimationListener () { //开始动画时回调 @Override public void onAnimationStart (Animation animation) { toast("开始动画时回调"); } //动画结束后回调 @Override public void onAnimationEnd (Animation animation) { toast("动画结束后回调"); } //重复播放动画时回调 @Override public void onAnimationRepeat (Animation animation) { toast("重复播放动画时回调"); } });}二、ScaleAnimation(缩放动画)
//缩放动画private void startScaleAnimation () { /** * 创建缩放动画对象 * 参数1:X轴从多大开始缩放 * 参数2:X轴缩放到多大 * 参数3:Y轴从多大开始缩放 * 参数4:Y轴缩放到多大 * 0是从没有开始缩放 * 其他大于零的数是缩放的倍数 * 小于零的数是将缩放的控件翻转再进行缩放 * * 参数5:X轴围绕哪里(可以是自己,也可以是父控件)缩放Animation.RELATIVE_TO_SELF,Animation.RELATIVE_TO_PARENT * 参数6:围绕X轴的哪个点进行缩放 * 参数7:Y轴围绕哪里缩放 * 参数8:围绕Y轴的那个点进行缩放 */ ScaleAnimation sa = new ScaleAnimation (1,0,1,0,Animation.RELATIVE_TO_SELF,2.0f,Animation.RELATIVE_TO_SELF,2.0f); //以下设置的参数同渐变动画设置的参数一致 sa.setDuration (1000); sa.setRepeatCount (3); sa.setRepeatMode (Animation.REVERSE); sa.setFillAfter (true); sa.setStartOffset (500); iv_anim.startAnimation (sa);}三、RotateAnimation(旋转动画)
//旋转动画private void startRotateAnimation () { /** * 创建旋转动画对象 * 参数1:从哪个角度开始旋转 * 参数2:旋转到哪个角度 * 参数3:X轴围绕哪里(可以是自己,也可以是父控件)旋转Animation.RELATIVE_TO_SELF,Animation.RELATIVE_TO_PARENT * 参数4:X轴围绕着哪个点进行旋转 * 参数5:Y轴围绕哪里旋转 * 参数6:Y轴围绕着哪个点进行旋转 */ RotateAnimation ra = new RotateAnimation (0,720,Animation.RELATIVE_TO_PARENT,1.0f,Animation.RELATIVE_TO_SELF,1.0f); //以下设置的参数同渐变动画设置的参数一致 ra.setDuration (1000); ra.setStartOffset (500); ra.setFillAfter (true); ra.setRepeatCount (4); ra.setRepeatMode (Animation.REVERSE); iv_anim.startAnimation (ra);}四、TranslateAnimation(平移动画)
//平移动画private void startTranslateAnimation () { /** * 创建平移动画的对象 * 参数1:X轴平移起始位置相对于哪里(可以相对自己,起始位置相对于自己或者父控件,其实是一样的,可以相对父控件,如果是父控件,有可能跑到屏幕外面) * 参数2;X轴平移动画的起始位置 * 参数3:X轴平移动到的位置相对哪里(可以相对自己,起始位置相对于自己或者父控件,其实是一样的,可以相对父控件,如果是父控件,有可能跑到屏幕外面) * 参数4:X轴平移到的位置 * 参数5:Y轴平移起始位置相对于哪里(可以相对自己,起始位置相对于自己或者父控件,其实是一样的,可以相对父控件,如果是父控件,有可能跑到屏幕外面) * 参数6;Y轴平移动画的起始位置 * 参数7:Y轴平移动到的位置相对哪里(可以相对自己,起始位置相对于自己或者父控件,其实是一样的,可以相对父控件,如果是父控件,有可能跑到屏幕外面) * 参数8:Y轴平移到的位置 * * 总结:平移相对位置只和平移到的相对位置有关。 */ TranslateAnimation ta = new TranslateAnimation (Animation.RELATIVE_TO_PARENT,0,Animation.RELATIVE_TO_SELF,1F,Animation.RELATIVE_TO_PARENT,0f,Animation.RELATIVE_TO_SELF,1f); //以下设置的参数同渐变动画设置的参数一致 ta.setRepeatMode (Animation.REVERSE); ta.setRepeatCount (4); ta.setDuration (1000); ta.setStartOffset (500); ta.setFillAfter (true); iv_anim.startAnimation (ta);}五、AnimationSet(组合动画)
//组合动画private void startSetAnimation () { /** * 创建组合动画对象 * 参数的具体意义不是很清楚,待以后清楚了补充 */ AnimationSet as = new AnimationSet (true); TranslateAnimation ta = new TranslateAnimation (Animation.RELATIVE_TO_SELF,0,Animation.RELATIVE_TO_SELF,1F,Animation.RELATIVE_TO_SELF,0f,Animation.RELATIVE_TO_SELF,1f); ta.setRepeatMode (Animation.REVERSE); ta.setRepeatCount (4); ta.setDuration (1000); ta.setStartOffset (500); ta.setFillAfter (true); RotateAnimation ra = new RotateAnimation (0,360,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); ra.setDuration (1000); ra.setStartOffset (500); ra.setFillAfter (true); ra.setRepeatCount (4); ra.setRepeatMode (Animation.REVERSE); ScaleAnimation sa = new ScaleAnimation (0,1,0,1,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); sa.setDuration (1000); sa.setRepeatCount (4); sa.setRepeatMode (Animation.REVERSE); sa.setFillAfter (true); sa.setStartOffset (500); AlphaAnimation aa = new AlphaAnimation (0,1); aa.setDuration (1000); aa.setFillAfter (true); aa.setStartOffset (500); aa.setRepeatCount (4); aa.setRepeatMode (Animation.REVERSE); //往组合动画中添加其它动画对象 as.addAnimation (ta); as.addAnimation (sa); as.addAnimation (aa); as.addAnimation (ra); //启动动画 iv_anim.startAnimation (as);}Demo下载地址:点击打开链接
0 0
- android补间动画(TweenAnimation)
- Android动画(2)--TweenAnimation(补间动画)
- Android动画1-补间动画(TweenAnimation)
- TweenAnimation 补间动画
- Android 补间动画TweenAnimation详解
- Android动画之ViewAnimation(TweenAnimation)视图动画(补间动画)
- Android动画之补间动画(TweenAnimation)详解
- Android 补件动画 TweenAnimation 简单DEMO
- TweenAnimation补间动画的使用
- 安卓动画之TweenAnimation补间动画详细攻略
- Android动画-TweenAnimation
- Android动画之TweenAnimation
- Android tween动画(补间动画)
- Android动画FrameAnimation、TweenAnimation和PropertyAnimation
- Android动画学习篇(一)【TweenAnimation】
- 动画[0]TweenAnimation 各种TweenAnimation
- Android-补间动画
- Android-补间动画
- redis学习之redis命令01
- 2016笔试回忆
- 用java实现音频文件的复制
- Android卡片式背景阴影
- 回归标准JAVA库
- android补间动画(TweenAnimation)
- C#之WinForm基础 通过改变拖拽控件的顺序,将textbox放在panel的下面
- 殿堂级Linux入门精选
- 学制作网页的一些笔记
- hdu 5877 Weak Pair 树状数组+离散化
- 不创建临时变量交换两个变量的内容
- javaweb学习(9)--jsp的基本
- 回文序列
- js中的Return的含义