android animation的应用实例

 


[java]
  view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">  
  3.   
  4.     <!--   
  5.         Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效  
  6.           
  7.         Alpha:渐变透明度动画效果  
  8.         Scale:渐变尺寸伸缩动画效果  
  9.         Translate:画面转换位置移动动画效果  
  10.         Rotate:画面旋转动画效果  
  11.           
  12.         Tween Animation 通用属性[类型]    功能    
  13.             Duration[long]  属性为动画持续时间   时间以毫秒为单位  
  14.             fillAfter [boolean] 当设置为true ,该动画转化在动画结束后被应用  
  15.             fillBefore[boolean] 当设置为true ,该动画转化在动画开始前被应用  
  16.               
  17.             interpolator    指定一个动画的插入器  有一些常见的插入器  
  18.             accelerate_decelerate_interpolator  
  19.             加速-减速 动画插入器  
  20.             accelerate_interpolator  
  21.             加速-动画插入器  
  22.             decelerate_interpolator  
  23.             减速- 动画插入器  
  24.             其他的属于特定的动画效果  
  25.             repeatCount[int]    动画的重复次数   
  26.             RepeatMode[int] 定义重复的行为 1:重新开始  2:plays backward  
  27.             startOffset[long]   动画之间的时间间隔,从上次动画停多少时间开始执行下个动画  
  28.             zAdjustment[int]    定义动画的Z Order的改变 0:保持Z Order不变  
  29.             1:保持在最上层  
  30.             -1:保持在最下层  
  31.       
  32.       
  33.      -->  
  34.     <!--  
  35.         透明控制动画   
  36.      -->  
  37.     <alpha  
  38.         android:fromAlpha="0.1"   
  39.         android:toAlpha="1.0"  
  40.         android:duration="3000"  
  41.     />  
  42.           
  43.     <!-- 尺寸伸缩动画效果 scale  
  44.       
  45.       
  46.         属性:interpolator 指定一个动画的插入器  
  47.   
  48.         有三种动画插入器:  
  49.          accelerate_decelerate_interpolator  加速-减速 动画插入器  
  50.          accelerate_interpolator        加速-动画插入器  
  51.          decelerate_interpolator        减速- 动画插入器  
  52.   
  53.         其他的属于特定的动画效果  
  54.   
  55.             fromXScale 属性为动画起始时 X坐标上的伸缩尺寸      
  56.             toXScale   属性为动画结束时 X坐标上的伸缩尺寸       
  57.   
  58.             fromYScale 属性为动画起始时Y坐标上的伸缩尺寸      
  59.             toYScale   属性为动画结束时Y坐标上的伸缩尺寸      
  60.   
  61.             说明:  
  62.                  以上四种属性值      
  63.                     0.0表示收缩到没有   
  64.                     1.0表示正常无伸缩       
  65.                     值小于1.0表示收缩    
  66.                     值大于1.0表示放大  
  67.                       
  68.             pivotX     属性为动画相对于物件的X坐标的开始位置  
  69.             pivotY     属性为动画相对于物件的Y坐标的开始位置  
  70.             说明:  
  71.                     以上两个属性值 从0%-100%中取值  
  72.                     50%为物件的X或Y方向坐标上的中点位置  
  73.         长整型值:  
  74.             duration  属性为动画持续时间  
  75.             说明:   时间以毫秒为单位  
  76.   
  77.         布尔型值:  
  78.             fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用  
  79.     -->  
  80.     <scale  
  81.         android:interpolator="@android:anim/accelerate_decelerate_interpolator"  
  82.         android:repeatCount="1"  
  83.           
  84.         android:fromXScale="0.5"  
  85.         android:fromYScale="0.5"  
  86.         android:toXScale="1.4"        
  87.         android:toYScale="1.4"  
  88.         android:pivotX="50%"  
  89.         android:pivotY="50%"  
  90.         android:fillAfter="false"  
  91.         android:duration="3000"  
  92.           
  93.     />  
  94.     <!--   
  95.         画面转换位置移动动画效果 translate  
  96.       
  97.         fromXDelta toXDelta 为动画、结束起始时 X坐标上的位置     
  98.         fromYDelta toYDelta 为动画、结束起始时 Y坐标上的位置  
  99.      -->  
  100.       
  101.     <translate  
  102.         android:repeatCount="2"  
  103.         android:fromXDelta="-30"  
  104.         android:fromYDelta="-30"  
  105.         android:toXDelta="-80"        
  106.         android:toYDelta="200"  
  107.         android:duration="3000"  
  108.     />  
  109.     <!--   
  110.         画面转移旋转动画效果 rotate  
  111.           
  112.         fromDegrees 为动画起始时物件的角度 说明  
  113.             当角度为负数——表示逆时针旋转  
  114.             当角度为正数——表示顺时针旋转  
  115.             (负数from——to正数:顺时针旋转)  
  116.             (负数from——to负数:逆时针旋转)  
  117.             (正数from——to正数:顺时针旋转)  
  118.             (正数from——to负数:逆时针旋转)  
  119.             toDegrees   属性为动画结束时物件旋转的角度 可以大于360度  
  120.         pivotX  
  121.         pivotY  为动画相对于物件的X、Y坐标的开始位  说明:以上两个属性值 从0%-100%中取值  
  122.         50%为物件的X或Y方向坐标上的中点位置  
  123.      -->  
  124.     <rotate  
  125.         android:interpolator="@android:anim/accelerate_interpolator"  
  126.         android:repeatCount="2"  
  127.         android:fromDegrees="0"  
  128.         android:toDegrees="+270"  
  129.         android:pivotX="50%"  
  130.         android:pivotY="50%"  
  131.         android:duration="3000"  
  132.     />  
  133.   
  134. </set>  

 

用法:

加入把此动画定义用到一个TextView上,那么需要做的工作很简单:

 

[java]  view plain copy
  1. Animation mAnimation ;  
  2. mAnimation = AnimationUtils.loadAnimation(this, R.anim.anim);  
  3. TextView text = (TextView)findViewById(R.id.textview00);  
  4. text.setAnimation(mAnimation);  

 

此处要注意一点:

要用AnimationDrawable 的start()方法来启动动画,不管动画是否完毕,想要第二次启动动画一定要先调用它的stop()方法才可以再次启动动画。

猜你喜欢

转载自l62s.iteye.com/blog/1663119