Android Tween Animation

 

Android支持动画效果。常见的有Tween Animation和Frame Animation.其中Frame Animation我们在墙面介绍过了,它比较简单。这里来介绍下Tween

 

Tween Animation 常见可以分成四种:

 

ScaleAnimation            :渐变尺寸伸缩效果

AlphaAnimation            :渐变透明度动画效果

TranslateAnimation      :画面转换位置动画效果

RotateAnimation          :画面转移动画效果

 

 

其中,我们可以在代码中直接使用,也可以把Animation做成资源XML文件,从资源中装载。

 

Animation Java Code的使用示例:

 

 

Android动画解析 --XML

<alpha>

    • <?xml version="1.0" encoding="utf-8"?>
    • <set xmlns:android="http://schemas.android.com/apk/res/android" >
    • <alpha
    • android:fromAlpha="0.1"
    • android:toAlpha="1.0"
    • android:duration="3000"
    • />
    • <!-- 透明度控制动画效果 alpha
    •         浮点型值:
    •             fromAlpha 属性为动画起始时透明度
    •             toAlpha   属性为动画结束时透明度
    •             说明:
    •                 0.0表示完全透明
    •                 1.0表示完全不透明
    •             以上值取0.0-1.0之间的float数据 类型的数字
    •         
    •         长整型值:
    •             duration  属性为动画持续时间
    •             说明:     
    •                 时间以毫秒为单位
    • -->
    • </set>
复制代码



<scale>

    • <?xml version="1.0" encoding="utf-8"?>
    • <set xmlns:android="http://schemas.android.com/apk/res/android">
    •    <scale  
    •           android:interpolator=
    •                      "@android:anim/accelerate_decelerate_interpolator"
    •           android:fromXScale="0.0"
    •           android:toXScale="1.4"
    •           android:fromYScale="0.0"
    •           android:toYScale="1.4"
    •           android:pivotX="50%"
    •           android:pivotY="50%"
    •           android:fillAfter="false"
    •           android:duration="700" />
    • </set>
    • <!-- 尺寸伸缩动画效果 scale
    •        属性:interpolator 指定一个动画的插入器
    •         在我试验过程中,使用android.res.anim中的资源 时候发现
    •         有三种动画插入器:
    •             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 ,该动画转化在动画结束后被应用
    • -->

<translate>

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <translate
  4. android:fromXDelta="30"
  5. android:toXDelta="-80"
  6. android:fromYDelta="30"
  7. android:toYDelta="300"
  8. android:duration="2000"
  9. />
  10. <!-- translate 位置转移动画效果
  11.         整型值:
  12.             fromXDelta 属性为动画起始时 X坐标上的位置   
  13.             toXDelta   属性为动画结束时 X坐标上的位置
  14.             fromYDelta 属性为动画起始时 Y坐标上的位置
  15.             toYDelta   属性为动画结束时 Y坐标上的位置
  16.             注意:
  17.                      没有指定fromXType toXType fromYType toYType 时候,
  18.                      默认是以自己为相对参照物            
  19.         长整型值:
  20.             duration  属性为动画持续时间
  21.             说明:   时间以毫秒为单位
  22. -->
  23. </set>

<rotate>

    • <?xml version="1.0" encoding="utf-8"?>
    • <set xmlns:android="http://schemas.android.com/apk/res/android">
    • <rotate
    •         android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    •         android:fromDegrees="0"
    •         android:toDegrees="+350"         
    •         android:pivotX="50%"
    •         android:pivotY="50%"     
    •         android:duration="3000" />  
    • <!-- rotate 旋转动画效果
    •        属性:interpolator 指定一个动画的插入器
    •              在我试验过程中,使用android.res.anim中的资源时候发现
    •              有三种动画插入器:
    •                 accelerate_decelerate_interpolator   加速-减速 动画插入器
    •                 accelerate_interpolator               加速-动画插入器
    •                 decelerate_interpolator               减速- 动画插入器
    •              其他的属于特定的动画效果
    •                            
    •        浮点数型值:
    •             fromDegrees 属性为动画起始时物件的角度   
    •             toDegrees   属性为动画结束时物件旋转的角度 可以大于360度   
    •         
    •             说明:
    •                      当角度为负数——表示逆时针旋转
    •                      当角度为正数——表示顺时针旋转              
    •                      (负数from——to正数:顺时针旋转)   
    •                      (负数from——to负数:逆时针旋转)
    •                      (正数from——to正数:顺时针旋转)
    •                      (正数from——to负数:逆时针旋转)      
    •             pivotX     属性为动画相对于物件的X坐标的开始位置
    •             pivotY     属性为动画相对于物件的Y坐标的开始位置
    •                
    •             说明:        以上两个属性值 从0%-100%中取值
    •                          50%为物件的X或Y方向坐标上的中点位置
    •         长整型值:
    •             duration  属性为动画持续时间
    •             说明:       时间以毫秒为单位
    • -->
    • </set>

如何使用XML 中的动画效果

    • public static Animation loadAnimation (Context context, int id)
    • //第一个参数Context为程序 的上下文   
    • //第二个参数id为动画XML文件的引用
    • //例子
    • myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action);
    • //使用AnimationUtils类的静态方法loadAnimation()来加载 XML中的动画XML文件

 

 

下面给出一个AnimationXml文件的具体内容。

 

 

 

scale,rotate,translate等等都是类似的。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值