zoukankan      html  css  js  c++  java
  • 在XML文件中定义动画(1)

    ① 打开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
    <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>
    <?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>
    
    <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>
    

      

      

    java 文件调用

     Button button=(Button)findViewById(R.id.ok)
            button.setOnClickListener(new OnClickListener(){
    
              public void onClick(View v) {
                  Animation animation=AnimationUtils.loadAnimation(HelloActivity.this,R.anim.buttonain);
                 findViewById(R.id.listView).startAnimation(animation);
                }
            });
    

      

     

  • 相关阅读:
    ftp的基本工作原理
    ubuntu自带输入法ibus 无法按数字键取词
    C语言教程
    【数据结构】---线性表
    python搭建opencv
    第六届Code+程序设计网络挑战赛
    整除分块
    ac自动机
    算法梳理 (CSP 2019
    lougu main page
  • 原文地址:https://www.cnblogs.com/daocaowu/p/3202287.html
Copyright © 2011-2022 走看看