zoukankan      html  css  js  c++  java
  • android 补间动画

    android开发过程中,为了更好的展示应用程序,应用程序添加动画,能够很好地实现这个功能。如果动画中的图像变化有一定的规律,可以采用自动生成图像的方式来生成动画,例如图像的移动、旋转、缩放等。自动生成中间图像的动画,补间动画,只需指定第一帧和最后一帧。

    补间动画的优点是节省硬盘空间,缺点是,无法生成复杂的动画。本文主要介绍经常用到的四种补间动画:移动、缩放、旋转、透明度。

    1.移动补间动画

    移动是比较常见的动画效果。通过xml文件或者java代码能够实现补间动画的移动效果。在res/anim,文件中新建test_translate.xml文件。

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <set xmlns:android="http://schemas.android.com/apk/res/android">
    3     <translate xmlns:android="http://schemas.android.com/apk/res/android"  
    4     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
    5     android:fromXDelta="0" android:toXDelta="320" android:fromYDelta="0" android:toYDelta="0" >
    6         
    7     </translate>
    8 
    9 </set>
    test_translte

     android:interpolator:表示动画渲染器。可以设置3个动画渲染器:accelerate_decelerate_interpolator(动画加速减速器),先加速,再减速;accelerate_interpolator(动画加速器),动画开始时比较慢,逐渐加速;decelerate_interpolator(动画减速器):动画开始时最快,逐渐减速。

    android:fromXDelta:动画起点位置的横坐标;

    android:fromYDelta:动画起点位置的纵坐标;

    android:toXDelta:动画终点位置的横坐标;

    android:toYDelta:动画终点位置的纵坐标。

    android:duration:动画的持续时间,单位是毫秒。动画在指定的时间内,从起点移动到终点。

    补间动画通过AnimationUtils.loadAnimation(this,int resid)来装载补间动画,setAnimation为控件绑定动画,animation.start(),启动动画,animation.setRepeatCount(Animation.INFINITE);循环显示动画。

    补间动画的三个状态:动画开始、动画结束、动画循环。监听状态的接口AnimationListener,3个方法为:onAnimationStart、onAnimationEnd、onAnimationRepeat。

    2.缩放补间动画

    通过<scale>标签定义缩放补间动画。

    1     <scale
    2         android:interpolator="@android:anim/accelerate_interpolator"
    3         android:fromXScale="1.0"
    4         android:fromYScale="0.0"
    5         android:toXScale="0.0"
    6         android:toYScale="1.0"
    7         android:duration="400">
    8         
    9     </scale>
    scale

    该段代码实现数据从上往下的展开。

     android:fromXScale:表示沿X轴缩放的起始比例。

     android:fromYScale:表示沿Y轴缩放的起始比例。

     android:toXScale:表示沿x轴缩放的结束比例

     android:toYScale:表示沿y轴缩放的结束比例

     android:pivotX:沿x轴缩放的支点位置

     android:pivotY:沿y轴缩放的支点位置

    3.旋转补间动画

    通过<roate>标签可以定义旋转补间动画。

    1     <rotate  android:interpolator="@android:anim/accelerate_interpolator"
    2         android:fromDegrees="0"
    3         android:toDegrees="150"
    4         android:pivotX="50%"
    5         android:pivotY="50%"
    6         android:duration="10000"
    7         android:repeatMode="restart"
    8         android:repeatCount="infinite"/>
    roate

    android:fromDegrees:旋转的起始角度。

     android:toDegrees:旋转的结束角度

    android:repeatCount:设置旋转的次数。该属性需要设置一个整数值,如果为0,则表示不循环。

    android:repeatMode:设置重复的模式。restart,表示重新开始循环。reverse,表示偶数次显示动画会与动画文件定义的方向相反。

    4.透明度补间动画

    通过  <alpha />标签设置透明度补间动画。

    1     <alpha android:interpolator="@android:anim/accelerate_interpolator" 
    2         android:fromAlpha="1.0" android:toAlpha="0.2" android:duration="2000"/>
    alpha

     android:fromAlpha:动画的起始透明度

    android:toAlpha:动画结束的透明度

    属性值在0.0-1.0之间,0.0为完全透明,1.0表示不透明。

    android 还有一个振动动画渲染器 cycle_interpolator.

  • 相关阅读:
    网络基础
    关于actionscript中新建一个sprite,设置大小(宽高)的问题。
    Android SDK无法更新问题解决 ---- 还可解决无法上google的问题
    android apk简单反编译
    Flash的坑之ExternalInterface.call只返回null值的解决办法
    Flash Socket简单调试工具
    进制转换 正进制
    Codeforces Div3 #498 A-F
    UVa10082
    div与div之间的拖拽
  • 原文地址:https://www.cnblogs.com/ggz19/p/4172130.html
Copyright © 2011-2022 走看看