Android--Tweened Animations介绍

1、简介

Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转、缩放、淡入淡出等,这些效果可以应用在绝大多数的控件中。

Animations从总体上可以分为两大类:

  • Tweened Animations(渐变动画):该类Animations提供了旋转、移动、伸展和淡出等效果。Alpha——淡入淡出,Scale——缩放效果,Rotate——旋转,Translate——移动效果。
  • Frame-by-frame Animations(画面转换动画) :这一类Animations可以创建一个Drawable序列,这些Drawable可以按照指定的时间间歇一个一个的显示。

至于 LayoutAnimation(布局动画) 和 Property Animation(属性动画)就不在这里提啦。

2、TweenedAnimations

使用TweenedAnimations的步骤:

  1. 创建一个AnimationSet对象(Animation子类)
  2. 增加需要创建相应的Animation对象
  3. 更据项目的需求,为Animation对象设置相应的数据
  4. 将Animatin对象添加到AnimationSet对象当中
  5. 使用控件对象开始执行AnimationSet

可根据需求是否使用 AnimationSet,若只有一种动画,直接使用Animation对象去执行也可以。

在XML文件中定义动画:

  1. 在res目录中新建anim文件夹
  2. 在anim目录中新建一个my_anim.xml(注意文件名小写)
  3. 在 my_anim.xml 加入代码

<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <alpha />
    <scale />
    <translate />
    <rotate />
set>

这就是各种动画标签,当然,alpha这些同样可以做根节点。

Tweened Animations的分类:

动画使用的类 Xml标签 动画的效果
AlphaAnimation 渐变透明度动画效果
ScaleAnimation 渐变尺寸缩放动画效果
RotateAnimation 画面旋转动画效果
TranslateAnimation 画面位置移动动画效果

Tween Animations的通用方法:

  1、setDuration(long durationMills) 设置动画持续时间(单位:毫秒)
  2、setFillAfter(Boolean fillAfter) 如果fillAfter的值为true,则动画执行后,控件将停留在执行结束的状态
  3、setFillBefore(Boolean fillBefore) 如果fillBefore的值为true,则动画执行后,控件将回到动画执行之前的状态
  4、setInterpolator(Interpolator i) 动画插入器(加速、减速插入器),大家可以看我的博客Android动画–Interpolator的介绍 。  
   5、setStartOffSet(long startOffSet) 设置动画执行之前的等待时间
   6、setRepeatCount(int repeatCount) 设置动画重复执行的次数
   7、setRepeatMode(int repeatMode) 设置顺序重复或倒序重复

1、AlphaAnimation

控制对象alpha水平的动画。这个动画可以通过改变alpha属性,达到渐进渐出的效果。

1、构造方法:

AlphaAnimation(float fromAlpha, float toAlpha)

AlphaAnimation anim = new AlphaAnimation(0.0f, 1.0f); //从0.01f到1.0f渐变。0.0是完全透明,1.0完全不透明。

2、设置动画持续时间:

anim.setDuration(3000);

3、为控件绑定动画效果:

imageView.setAnimation(anim);

4、开始动画:

anim.start();

Android--Tweened Animations介绍_第1张图片

如果要从 xml 文件中将动画效果添加到View上也只需要一行代码:

imageView.startAnimation(AnimationUtils.loadAnimation(this, R.anim.my_anim));

如果需要重用这个动画,也可以将其抽离出来。以下代码将AlphaAnimation抽离后的代码可以如下:

AlphaAnimation animation = (AlphaAnimation) AnimationUtils.loadAnimation(this, R.anim.my_anim);
imageView.startAnimation(animation);

你可能感兴趣的:(Android动画,android,android,动画,ui,界面)