Android动画之Tween动画

1.介绍

  Tween Animation补间动画:给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变。Android中Tween动画分为四类:渐变动画,位移动画,旋转动画和缩放动画。动画的定义既可以在xml文件中定义也可以在代码中定义。

2.在xml中定义动画

 1.渐变动画

在/res/anim目录下创建xml文件

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:fromAlpha="1"
    android:repeatCount="infinite"
    android:repeatMode="reverse"
    android:toAlpha="0" />

属性:

android:fromAlpha:起点不透明度。其中0.0表示透明,1.0表示不透明。

android:toAlpha:终点不透明度。

android:repeateCount:重复次数,当为数值则重复次数为所对应的数值,infinite为无限次重复。

android:repeateMode:重复模式,restart 透明-->不透明 reverse 透明-->不透明-->透明

2.缩放动画

在/res/anim目录下创建xml文件

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:fromXScale="1"
    android:fromYScale="1"
    android:pivotX="0"
    android:pivotY="0"
    android:toXScale="0"
    android:toYScale="0" />

属性:
android:povotX:缩放中心点的x坐标,android:pivotY:缩放中心点的Y坐标。

3.位移动画

在/res/anim目录下创建xml文件

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="100%p"
    android:toYDelta="100%p" />

4.旋转动画

在/res/anim目录下创建xml文件

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatMode="restart"
    android:toDegrees="720" />


5.<set>标签表示多个动画的集合,使用多个动画以set为根标签

/res/anim目录下创建xml文件

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

    <alpha
        android:duration="1000"
        android:fromAlpha="1"
        android:toAlpha="0" />

    <translate
        android:duration="1000"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="100%p"
        android:toYDelta="100%p" />

    <scale
        android:duration="1000"
        android:fromXScale="1"
        android:fromYScale="1"
        android:pivotX="0"
        android:pivotY="0"
        android:toXScale="0"
        android:toYScale="0" />

    <rotate
        android:duration="1000"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatMode="restart"
        android:toDegrees="720" />

</set>

示例:https://files.cnblogs.com/malinkang/TweenAnimationDemo.zip

参考

 http://www.cnblogs.com/angeldevil/archive/2011/12/02/2271096.html

http://developer.android.com/intl/zh-CN/guide/topics/resources/animation-resource.html#Tween

原文地址:https://www.cnblogs.com/malinkang/p/3053927.html