zoukankan      html  css  js  c++  java
  • Mono For Android中简单实现按钮的动画效果

    Android中动画的分Tween Animation和Frame Animation,本节主要讲Tween Animation的实现。

    一般是通过XML文件来定义动画的,具体如下:

      1、在项目res目录(Java环境)或者项目resource目录下(Mono环境)新建anim文件夹,在该文件夹下添加相应的定义animation的xml文件,即文件位置:

      res/anim/filename.xml(Java环境)

      resource/anim/filename.xml(Mono环境)

      xml文件定义的格式如下:(参考示例http://developer.android.com/guide/topics/resources/animation-resource.html

    <?xml version="1.0" encoding="utf-8"?>
    <setxmlns:android="http://schemas.android.com/apk/res/android"
       
    android:interpolator="@[package:]anim/interpolator_resource"
       
    android:shareInterpolator=["true" | "false"] >
       
    <alpha
           
    android:fromAlpha="float"
           
    android:toAlpha="float"/>
       
    <scale
           
    android:fromXScale="float"
           
    android:toXScale="float"
           
    android:fromYScale="float"
           
    android:toYScale="float"
           
    android:pivotX="float"
           
    android:pivotY="float"/>
       
    <translate
           
    android:fromXDelta="float"
           
    android:toXDelta="float"
           
    android:fromYDelta="float"
           
    android:toYDelta="float"/>
       
    <rotate
           
    android:fromDegrees="float"
           
    android:toDegrees="float"
           
    android:pivotX="float"
           
    android:pivotY="float"/>
       
    <set>
            ...
       
    </set>
    </set>

      以上示例说明:
      1、xml文件只能有一个根元素,为set、alpha、rotate、translate、scale之一,其中set可以十多个元素的组合,且set可以嵌套。
      2、xml元素的具体属性有哪些可以参考官方文档。
      官方文档应用的示例如下:

     
    animation.xml文件: 
    <setxmlns:android="http://schemas.android.com/apk/res/android"
       
    android:shareInterpolator="false">
       
    <scale
           
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
           
    android:fromXScale="1.0"
           
    android:toXScale="1.4"
           
    android:fromYScale="1.0"
           
    android:toYScale="0.6"
           
    android:pivotX="50%"
           
    android:pivotY="50%"
           
    android:fillAfter="false"
           
    android:duration="700"/>
       
    <set
           
    android:interpolator="@android:anim/accelerate_interpolator"
           
    android:startOffset="700">
           
    <scale
               
    android:fromXScale="1.4"
               
    android:toXScale="0.0"
               
    android:fromYScale="0.6"
               
    android:toYScale="0.0"
               
    android:pivotX="50%"
               
    android:pivotY="50%"
               
    android:duration="400"/>
           
    <rotate
               
    android:fromDegrees="0"
               
    android:toDegrees="-45"
               
    android:toYScale="0.0"
               
    android:pivotX="50%"
               
    android:pivotY="50%"
               
    android:duration="400"/>
       
    </set>
    </set>
    调用代码如下:

    ImageView image =(ImageView) findViewById(R.id.image);
    Animation animation =AnimationUtils.loadAnimation(this, R.anim.animation);
    image
    .startAnimation(animation);

    你会发现你的image按钮应用上了动画效果,很简单吧,然后通过组合,随便尝试会发现更多很炫的效果的。


  • 相关阅读:
    Ural 1996 Cipher Message 3 (生成函数+FFT)
    UVA 12633 Super Rooks on Chessboard (生成函数+FFT)
    HDU 5307 He is Flying (生成函数+FFT)
    BZOJ 2039 人员雇佣 (最小割)
    BZOJ 3158 千钧一发 (最大流->二分图带权最大独立集)
    BZOJ 3144 [HNOI2013]切糕 (最大流+巧妙的建图)
    BZOJ 3774 最优选择 (最小割+二分图)
    BZOJ 3876 [AHOI/JSOI2014]支线剧情 (最小费用可行流)
    BZOJ 3771 Triple (FFT+生成函数+容斥)
    洛谷 P3121 【[USACO15FEB]审查(黄金)Censoring (Gold)】
  • 原文地址:https://www.cnblogs.com/rainmonth/p/3430479.html
Copyright © 2011-2022 走看看