当前位置: 代码迷 >> Android >> [转]android animation的运用实例
  详细解决方案

[转]android animation的运用实例

热度:70   发布时间:2016-05-01 14:31:54.0
[转]android animation的应用实例
此文件名为myanimation.xml 位于 res/anim文件夹下,具体释义已在文件中解释:

<?xml version="1.0" encoding="UTF-8"?>  
<set xmlns:android="http://schemas.android.com/apk/res/android">  
  
    <!--   
        Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效  
          
        Alpha:渐变透明度动画效果  
        Scale:渐变尺寸伸缩动画效果  
        Translate:画面转换位置移动动画效果  
        Rotate:画面旋转动画效果  
          
        Tween Animation 通用属性[类型]    功能    
            Duration[long]  属性为动画持续时间   时间以毫秒为单位  
            fillAfter [boolean] 当设置为true ,该动画转化在动画结束后被应用  
            fillBefore[boolean] 当设置为true ,该动画转化在动画开始前被应用  
              
            interpolator    指定一个动画的插入器  有一些常见的插入器  
            accelerate_decelerate_interpolator  
            加速-减速 动画插入器  
            accelerate_interpolator  
            加速-动画插入器  
            decelerate_interpolator  
            减速- 动画插入器  
            其他的属于特定的动画效果  
            repeatCount[int]    动画的重复次数   
            RepeatMode[int] 定义重复的行为 1:重新开始  2:plays backward  
            startOffset[long]   动画之间的时间间隔,从上次动画停多少时间开始执行下个动画  
            zAdjustment[int]    定义动画的Z Order的改变 0:保持Z Order不变  
            1:保持在最上层  
            -1:保持在最下层
     -->  
    <!--  
        透明控制动画   
     -->  
    <alpha  
        android:fromAlpha="0.1"   
        android:toAlpha="1.0"  
        android:duration="3000"  
    />  
          
    <!-- 尺寸伸缩动画效果 scale  
     
        属性:interpolator 指定一个动画的插入器  
  
        有三种动画插入器:  
         accelerate_decelerate_interpolator  加速-减速 动画插入器  
         accelerate_interpolator        加速-动画插入器  
         decelerate_interpolator        减速- 动画插入器  
  
        其他的属于特定的动画效果  
  
            fromXScale 属性为动画起始时 X坐标上的伸缩尺寸      
            toXScale   属性为动画结束时 X坐标上的伸缩尺寸       
  
            fromYScale 属性为动画起始时Y坐标上的伸缩尺寸      
            toYScale   属性为动画结束时Y坐标上的伸缩尺寸      
  
            说明:  
                 以上四种属性值      
                    0.0表示收缩到没有   
                    1.0表示正常无伸缩       
                    值小于1.0表示收缩    
                    值大于1.0表示放大  
                      
            pivotX     属性为动画相对于物件的X坐标的开始位置  
            pivotY     属性为动画相对于物件的Y坐标的开始位置  
            说明:  
                    以上两个属性值 从0%-100%中取值  
                    50%为物件的X或Y方向坐标上的中点位置  
        长整型值:  
            duration  属性为动画持续时间  
            说明:   时间以毫秒为单位  
  
        布尔型值:  
            fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用  
    -->  
    <scale
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"  
        android:repeatCount="1"  
          
        android:fromXScale="0.5"  
        android:fromYScale="0.5"  
        android:toXScale="1.4"        
        android:toYScale="1.4"  
        android:pivotX="50%"  
        android:pivotY="50%"  
        android:fillAfter="false"  
        android:duration="3000"  
          
    />  
    <!--   
        画面转换位置移动动画效果 translate  
      
        fromXDelta toXDelta 为动画、结束起始时 X坐标上的位置     
        fromYDelta toYDelta 为动画、结束起始时 Y坐标上的位置  
     -->  

    <translate  
        android:repeatCount="2"  
        android:fromXDelta="-30"  
        android:fromYDelta="-30"  
        android:toXDelta="-80"        
        android:toYDelta="200"  
        android:duration="3000"  
    />  
    <!--   
        画面转移旋转动画效果 rotate  
          
        fromDegrees 为动画起始时物件的角度 说明  
            当角度为负数——表示逆时针旋转  
            当角度为正数——表示顺时针旋转  
            (负数from——to正数:顺时针旋转)  
            (负数from——to负数:逆时针旋转)  
            (正数from——to正数:顺时针旋转)  
            (正数from——to负数:逆时针旋转)  
            toDegrees   属性为动画结束时物件旋转的角度 可以大于360度  
        pivotX  
        pivotY  为动画相对于物件的X、Y坐标的开始位  说明:以上两个属性值 从0%-100%中取值  
        50%为物件的X或Y方向坐标上的中点位置  
     -->  
    <rotate  
        android:interpolator="@android:anim/accelerate_interpolator"  
        android:repeatCount="2"  
        android:fromDegrees="0"  
        android:toDegrees="+270"  
        android:pivotX="50%"  
        android:pivotY="50%"  
        android:duration="3000"  
    />  
 
</set>  
用法:
         加入把此动画定义用到一个TextView上,那么需要做的工作很简单:

Animation mAnimation ;  
mAnimation = AnimationUtils.loadAnimation(this, R.anim.anim);  
TextView text = (TextView)findViewById(R.id.textview00);  
text.setAnimation(mAnimation);  

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

转自http://blog.csdn.net/zhqingyun163/archive/2009/11/05/4770068.aspx
  相关解决方案