Android动画详解-补间动画-基础篇
来源:互联网 发布:java socket连接池 编辑:程序博客网 时间:2024/06/18 04:59
最近学Android有点枯燥乏味,总是学初级知识确实很没有意思。于是准备好好研究一下天天从网上抄的动画究竟是怎么实现的。
Android动画分为三类: (1)补间动画 (2)帧动画 (3)属性动画
本篇我们谈谈补间动画,网上百度动画一般都是补间动画,可应付简单的动画效果,不过得注意补间动画在用于view时只是在视觉上的效果,实际上view的位置、大小等属性并没有改变。比如:如果用补间动画移动了一个view当你点击视觉上的view时并不会触发监听,但是点击view原来的位置时会触发。
补间动画实现效果分为四类:
(1)透明度:alpha
(2)缩放:scale
(3)平移:translate
(4)旋转:rotate
以上四种效果都可以通过定义相关类进行参数设置或者在xml中定义属性进行使用,一般使用xml方式较多,主要是复用性比较强,还有就是代码看起来比较整洁。下面我们就来试试这两种方式
(1)透明度:alpha
Xml定义(tween_alpha.xml):一般放在res下anim(自己建文件夹)
<?xml version="1.0" encoding="utf-8"?><!-- xml固定书写格式 --><set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator" > <!-- 透明度动画设置 1.fromAlpha:动画开始时的透明度1.0代表完全显示 2.toAlpha:动画结束时的透明度0.0代表完全隐藏 3.duration:动画持续的时间 4.repeatCount:动画重复的次数 5.repeatMode:动画重复的样式 (1)reverse代表透明度由1.0->0.0->1.0->0.0.... (2)restart代表透明度由1.0->0.0,1.0->0.0..... 6.interpolator:动画变换的速率,系统内置了很多,有些也可以进行简单的自定义。功能比如先变换快再慢、先慢再快。 --> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="3000" android:repeatCount="5" android:repeatMode="reverse" android:interpolator="@android:anim/accelerate_decelerate_interpolator"/></set>
Java代码中使用定义的xml:startAnimation该方法为View的方法。
Animation alpha_animation=AnimationUtils.loadAnimation(TweenAnimationActivity.this,R.anim.tween_alpha); imageView1.startAnimation(alpha_animation); alpha_animation.start();
以上代码应该不用解释,都是Android内置的一些类方便我们操作动画。
(2)缩放:scale
Xml定义(tween_scale.xml):一般放在res下anim(自己建文件夹)
<?xml version="1.0" encoding="utf-8"?><!-- xml固定书写格式 1.fillAfter设置动画结束后是否保持最后一刻的状态,注意fillAfter写在set里面才有效 --><set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true"> <!-- 缩放动画效果 1.fromXScale:开始缩放(X轴)比例1.0代表不缩放,0.0代表缩放成点 2.fromYScale:开始缩放(Y轴)比例 3.pivotX:缩放的中心点 注:fromXScale,toXScale,fromYScale,toYScale使用时需要全部设置值, 否则默认为0则出现瞬间消失的效果,假如你不想让Y轴缩放只要如此设置 android:fromYScale="1.0" android:toYScale="1.0" --> <scale android:fromXScale="1.0" android:toXScale="0.0" android:fromYScale="1.0" android:toYScale="0.0" android:pivotX="0%" android:pivotY="0%" android:duration="3000"/></set>
Java代码中使用定义的xml
Animation scale_animation=AnimationUtils.loadAnimation(TweenAnimationActivity.this, R.anim.tween_scale); imageView1.startAnimation(scale_animation); scale_animation.start();
等等现在需要解释一下,有人可能看着这要问不是说要介绍xml和代码定义两种方式设置动画的吗?因为四种方式其实在使用中用法都是差不多的,所以为了减少重复的内容,前两种使用xml定义的方式,后两种使用代码设置参数的方式。
(3)平移:translate
代码设置动画参数:TranslateAnimation 对应的动画类,相应的上述两种也有对应的参数类,名字起的方式是一样的。
/** * 平移动画设置TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta) * fromXDelta:x轴平移开始时的坐标 * toXDelta: x轴平移结束时的坐标 */ TranslateAnimation translate_Animation=new TranslateAnimation(0, width-image_x, 0, height-image_y);// translate_Animation.setFillAfter(true);//设置动画结束时保持最后一个动作 translate_Animation.setDuration(5000); /** * 设置动画变换时监听 * 1.onAnimationStart动画开始时执行 * 2.onAnimationRepeat动画重复执行时调用 * 3.onAnimationEnd动画结束时调用 *这里我并没有用到该方法 ,只是想介绍一下而已 */ translate_Animation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { } }); imageView1.startAnimation(translate_Animation); translate_Animation.start();
(4)旋转:rotate
/** * 旋转动画设置: * RotateAnimation(float fromDegrees, float toDegrees, float pivotX, float pivotY) * 构造方法很明显,和xml编辑时参数设置保持一致,不过设置时没有xml方便 * pivotX、pivotY旋转时的中心点 */ RotateAnimation rotate_animation=new RotateAnimation(0, 360, 50, 50); rotate_animation.setDuration(3000); imageView1.startAnimation(rotate_animation); rotate_animation.start();
好了,关于补间动画基础已经介绍完毕了,第一篇博客,内容偏简单,如果内容出现错误,希望告诉我。后序会继续更新,使用补间动画完成一些有趣的动画
- Android动画详解-补间动画-基础篇
- Android动画基础-补间动画
- Android动画详解-补间动画-AnimationSet
- android 补间动画详解
- Android 属性动画,补间动画,xml资源动画详解
- Android动画详解-补间动画-activity切换动画实现
- Android 动画-----补间动画
- Android动画--补间动画
- Android基础笔记(十)- 帧动画、补间动画详解、对话框
- Android基础--Android动画(一)补间动画
- Android开发基础之-----------补间动画
- Android基础之补间动画入门
- android动画 -- 帧动画 补间动画
- Android动画-帧动画&补间动画
- Android补间动画(TweenedAnimations)详解
- Android 补间动画TweenAnimation详解
- Android基础篇之补间动画(Tween)
- Android Animation动画详解(一): 补间动画
- 关于缓存的介绍
- Eclipse的使用
- POJ 1208 The Blocks Problem
- CCF之ISBN号码
- js学习笔记2
- Android动画详解-补间动画-基础篇
- Java-IO(一)——IO和File
- mysql操作语句(持续更新ing!!!)
- GROUPING & GROUPING_ID & GROUP_ID & GROUPING SETS
- 网络连线类型
- python3.6基础学习记录(四)
- int (*a)[10] 和 int *a[10] 的区别
- Python的BeautifulSoup安装
- 简单的压缩字符串