android动画xml文件详细实例说明

未分类 , , , , , 发表评论

头:(当然最后以 </set>结束)

<set xmlns:android=”http://schemas.android.com/apk/res/android
 android:interpolator=”@android:anim/accelerate_interpolator”
 android:fillAfter=”true”
 >

//=================================================================================================================
说明:
其中:xmlns:android=”http://schemas.android.com/apk/res/android” 必须要,其余的可以任选
android:interpolator=”@android:anim/decelerate_interpolator”是什么含义,文档里说的也不太清楚,其实很简单,看下面:
interpolator定义一个动画的变化率(the rate of change)。这使得基本的动画效果(alpha, scale, translate, rotate)得以
加速,减速,重复等。用通俗的一点的话理解就是:动画的进度使用 Interpolator 控制。Interpolator 定义了动画的变化速度,
可以实现匀速、正加速、负加速、无规则变加速等。Interpolator 是基类,封装了所有 Interpolator 的共同方法,它只有一个方法,
即 getInterpolation (float input),该方法 maps a point on the timeline to a multiplier to be applied to the transformations
 of an animation。Android 提供了几个 Interpolator 子类,实现了不同的速度曲线,如下:AccelerateDecelerateInterpolator        在动画开始与介绍的地方速率改变比较慢,在中间的时侯加速
AccelerateInterpolator        在动画开始的地方速率改变比较慢,然后开始加速
CycleInterpolator        动画循环播放特定的次数,速率改变沿着正弦曲线
DecelerateInterpolator        在动画开始的地方速率改变比较慢,然后开始减速
LinearInterpolator        在动画的以均匀的速率改变
对于 LinearInterpolator ,变化率是个常数,即 f (x) = x.
public float getInterpolation(float input) {
return input;
}
Interpolator其他的几个子类,也都是按照特定的算法,实现了对变化率。还可以定义自己的 Interpolator 子类,实现抛物线、自由落体
等物理效果。

android:fillAfter=”true”: 这个其实有两个,另一个是android:fillBefore=”true”  这个标记的意思是说:当动画结束后停留在第一帧还是
 停留在最后一帧

//=======================================================================================================================

 

动画设置:

1、<scale  …./>:这个是比例变化,主要意思就是缩放动画
 其中的项有:
 android:fromXScale=”1.0″   //X方向开始比例,1.0表示本来大小
 android:toXScale=”2.0″     //X方向结束比列,2.0表示原本大小的两倍
 android:fromYScale=”1.0″   //Y方向同X方向是一样的 
 android:toYScale=”2.0″
 android:pivotX=”50%” //X方向缩放中心点,也就是这个点不动,两边缩放
 android:pivotY=”50%” //Y方向缩放中心点,也就是这个点不动,两边缩放
 android:duration=”2000″ //动画持续时间(单位毫秒)
 android:startOffset=”2000″   //动画延迟多长时间开始

2、<rotate …./>: 旋转动画
 其中的项有:
 android:fromDegrees=”0″   //旋转动画开始角度
 android:toDegrees=”+360″   //旋转动画结束角度,记住符号 + 表示顺时针,- 表示逆时针
 android:pivotX=”50%” //X方向缩放中心点,以这点为圆心旋转
 android:pivotY=”50%” //Y方向缩放中心点,以这点为圆心旋转
 android:duration=”3000″  //动画持续时间(单位毫秒)
 android:startOffset=”1000″  //动画延迟多长时间开始

3、<alpha …./>:透明度变化
 其中的项有:
 android:fromAlpha=”1.0″ //开始时的透明度,1 表示不透明,0表示完全透明
 android:toAlpha=”0.2″ //结束时的透明度,1 表示不透明,0表示完全透明
 android:duration=”2500″  //动画持续时间(单位毫秒)
 android:startOffset=”2000″  //动画延迟多长时间开始

4、<translate…./>: 移动动画
 其中的项有:
 android:fromXDelta=”320″  //移动动画初始X坐标位置
 android:toXDelta=”0″    //移动到X坐标什么位置
 android:fromYDelta=”480″  //移动动画初始Y坐标位置
 android:toYDelta=”0″  //移动到Y坐标什么位置
 android:duration=”10000″    //动画持续时间(单位毫秒)
 android:startOffset=”2000″  //动画延迟多长时间开始

 

动画的使用:这里比如用一个 logo 为例,logo是一个TextView ,这里有一个动画文件
welcome.xml;我们将这个动画添加到logo中执行
 logo = (TextView)findViewById(R.id.logo);
 AnimationSet animation = (AnimationSet) AnimationUtils.loadAnimation(getApplicationContext(), R.anim.welcome);
 //如果xml文件中没有android:interpolator=”@android:anim/accelerate_interpolator”,可以不要以下两句
 Interpolator i = new AccelerateDecelerateInterpolator();
 animation.setInterpolator(i);
 //==============================================
 logo.startAnimation(animation);//开始动画
 //添加动画事件监听器
 animation.setAnimationListener(new AnimationListener() {
  public void onAnimationStart(Animation animation) {}
  public void onAnimationRepeat(Animation animation) {}
  @Override
  public void onAnimationEnd(Animation animation) {}
 }

发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *