Android中Animation动画的xml使用


在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation 画面转换动画。

tweened animation 渐变动画有以下两种类型:

1.alpha   渐变透明度动画效果

2.scale   渐变尺寸伸缩动画效果

frame by frame animation 画面转换动画有以下两种类型:

1.translate  画面转换位置移动动画效果

2.rotate    画面转移旋转动画效果

在 res 文件夹下新建一个 anim 的文件夹,并在其中建立一个 animation.xml 文件,具体如下:

XML/HTML代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2.   
  3. <set  
  4.   
  5. xmlns:android="http://schemas.android.com/apk/res/android">  
  6.   
  7.        <translate  
  8.   
  9.               android:fromXDelta="0"              // 设置动画开始时 x 坐标的位置  
  10.   
  11.               android:toXDelta="-100%p" // 设置动画结束时 x 坐标的位置  
  12.   
  13.               android:duration="300"        // 设置动画持续的时间 300 毫秒  
  14.   
  15.        >  
  16.   
  17.        </translate>  
  18.   
  19.        <alpha  
  20.   
  21.               android:fromAlpha="1.0"            // 设置动画开始时的透明度   1.0 代表不透明  
  22.   
  23.               android:toAlpha="0.0"   // 设置动画开始时的透明度   0.0 表示完全透明  
  24.   
  25.               android:duration="300" // 设置动画持续的时间 300 毫秒  
  26.   
  27.        />  
  28.   
  29.        <scale  
  30.   
  31.           android:interpolator="              // 设置动画出入器  
  32.   
  33. @android:anim/accelerate_decelerate_interpolator"  
  34.   
  35.           android:fromXScale="0.0"       // 设置动画开始时 x 坐标上的伸缩长度  
  36.   
  37.           android:toXScale="1.4"            // 设置动画结束时 x 坐标上的伸缩长度  
  38.   
  39.           android:fromYScale="0.0"       // 设置动画开始时 y 坐标上的伸缩长度  
  40.   
  41.           android:toYScale="1.4"     // 设置动画开始时 y 坐标上的伸缩长度  
  42.   
  43.           android:pivotX="50%"      // 设置动画相对于控件的 x 坐标的位置  
  44.   
  45.           android:pivotY="50%"      // 设置动画相对于控件的 y 坐标的位置  
  46.   
  47.           android:fillAfter="false"    // 该动画转化在动画结束前开始应用  
  48.   
  49.           android:duration="700" // 设置动画持续的时间  
  50.   
  51. />  
  52.   
  53.     <rotate  
  54.   
  55.         android:interpolator=            // 设置动画出入器  
  56.   
  57. "@android:anim/accelerate_decelerate_interpolator"  
  58.   
  59.         android:fromDegrees="0"     // 设置动画开始时的角度  
  60.   
  61.         android:toDegrees="+350"           // 设置动画结束时的旋转角度  
  62.   
  63.         android:pivotX="50%"         // 设置动画相对于控件的 x 坐标的位置  
  64.   
  65.         android:pivotY="50%"         // 设置动画相对于控件的 y 坐标的位置  
  66.   
  67.         android:duration="3000"       // 设置动画持续的时间  
  68.   
  69.     />  
  70.   
  71. </set>  

利用 AnimationUtils.loadAnimation 将动画加载

Java代码
  1. Animation animation;  
  2.   
  3. animation=AnimationUtils.loadAnimation(this, R.anim.animation);  
  4.   
  5. 然后再想要实现动画效果的控件上通过使用 startAnimation() 方法进行添加。  
  6.   
  7. // 编写动画对象,并且获取自定应的动画样式  
  8.   
  9. animation=AnimationUtils.loadAnimation(this, R.anim.animation);  
  10.   
  11.         spinner.setOnTouchListener(new Spinner.OnTouchListener() {  
  12.   
  13.                       
  14.   
  15.                      @Override  
  16.   
  17.                      public boolean onTouch(View v, MotionEvent event) {  
  18.   
  19.                             // TODO Auto-generated method stub  
  20.   
  21.                             // 运行动画 animation  
  22.   
  23.                             v.startAnimation(animation);  
  24.   
  25.                             // 将 spinner 的可见性设置为不可见状态  
  26.   
  27.                             v.setVisibility(View.INVISIBLE);  
  28.   
  29.                             return false;  
  30.   
  31.                      }  
  32.   
  33.               });  

相关内容