zoukankan      html  css  js  c++  java
  • (四)Android动画开发---Animation动画效果详解

    Android 使用Animation的具体操作方法我们将会在这篇文章中做一个详细的介绍。大家可以通过这里举出的代码进行解读,并从中了解到相关操作技巧,方便我们将来开发应用,并且加深对这一操作系统的理解程度。

    在Android中,分别可以在xml中定义Animation,也可以在程序代码中定义。

    动画类型

    Android的animation由四种类型组成

    XML中

    alpha 渐变透明度动画效果
    scale 渐变尺寸伸缩动画效果
    translate 画面转换位置移动动画效果
    rotate 画面转移旋转动画效果



    JavaCode中

    AlphaAnimation 渐变透明度动画效果
    ScaleAnimation 渐变尺寸伸缩动画效果
    TranslateAnimation 画面转换位置移动动画效果
    RotateAnimation 画面转移旋转动画效果


    Android动画模式

    Animation主要有两种动画模式:
    一种是tweened animation(渐变动画)

    XML中 JavaCode
    alpha AlphaAnimation
    scale ScaleAnimation



    一种是frame by frame(画面转换动画)

    XML中 JavaCode
    translate TranslateAnimation
    rotate RotateAnimation




    如何在XML文件中定义动画

    ① 打开Eclipse,新建Android工程
    ② 在res目录中新建anim文件夹
    ③ 在anim目录中新建一个myanim.xml(注意文件名小写)
    ④ 加入XML的动画代码

    <?xml version="1.0" encoding="utf-8"?>  
    <set xmlns:android="http://schemas.android.com/apk/res/android">  
      <alpha/>  
      <scale/>  
      <translate/>  
      <rotate/>  
    </set>

    Android动画解析--XML

    <?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>
    <?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 ,该动画转化在动画结束后被应用  
    -->
    <?xml version="1.0" encoding="utf-8"?>  
    <set xmlns:android="http://schemas.android.com/apk/res/android">  
    <translate  
    android:fromXDelta="30"
    android:toXDelta="-80"
    android:fromYDelta="30"
    android:toYDelta="300"
    android:duration="2000"
    />  
    <!-- translate 位置转移动画效果  
            整型值:  
                fromXDelta 属性为动画起始时 X坐标上的位置      
                toXDelta   属性为动画结束时 X坐标上的位置  
                fromYDelta 属性为动画起始时 Y坐标上的位置  
                toYDelta   属性为动画结束时 Y坐标上的位置  
                注意:  
                         没有指定fromXType toXType fromYType toYType 时候,  
                         默认是以自己为相对参照物               
            长整型值:  
                duration  属性为动画持续时间  
                说明:   时间以毫秒为单位  
    -->  
    </set>
    <?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>

    本文转载自 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1113/548.html

  • 相关阅读:
    java 基础知识学习 priorityQueue
    MySQL 学习三 关于转义
    java基础知识 学习 关于URL中传递的参数含有特殊字符
    MYSQL学习二 关于左连接
    大型网站架构体系的演变
    java 最佳实践
    Spring boot 学习 九
    七: git每次push都输入用户名,密码
    【JS】自学
    【CSS3】CSS3自学
  • 原文地址:https://www.cnblogs.com/fuyanan/p/4789744.html
Copyright © 2011-2022 走看看