Android 之Animation动画(六)之 View Animation

本章介绍Android中的View Animation。

目录
1. View Animation简介
2. View Animation的语法规则
3. View Animation的示例

View Animation简介

View Animation(Tween Animation): 补间动画,给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变。

View Animation只能用来实现四种基本动作:透明/伸缩/移动/旋转。它与"Property Animation适用于任意Object类型不同",View Animation只适用于View。但是View Animation相比于Property Animation的使用更加简单。

View Animation的语法规则

1. View Animation的样式

View Animation通常在res/anim目录下新建一个xml文件来定义。xml文件的格式如下:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns: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>

说明:
(01) set: 是动画的集合,相当于一个容器。
(02) interpolator: 动画的动作类型,比如accelerate_interpolator类型的动画是加速的,它会越来越快。
(03) shareInterpolator: 将set的interpolator应用到set所包行的动画中。
(04) alpha: 透明度。
   a) fromAlpha: 起始动画的透明度。它的值是0~1.0之间;0表示完全透明,1.0表示完全不透明。
   b) toAlpha: 结束动画的透明度。它的值是0~1.0之间;0表示完全透明,1.0表示完全不透明。
(05) scale: 缩放。
   a) fromXScale: 起始动画在X轴上的缩放倍数。0表示没有,2表示2倍。
   b) toXScale: 结束动画在X轴上的缩放倍数。0表示没有,2表示2倍。
   c) fromYScale: 起始动画在Y轴上的缩放倍数。0表示没有,2表示2倍。
   d) toYScale: 结束动画在Y轴上的缩放倍数。0表示没有,2表示2倍。
   e) pivotX: 动画缩放时,中心点在X轴上的位置(相对于原始的视图)。50%表示在视图的X轴中间。
   f) pivotY: 动画缩放时,中心点在Y轴上的位置(相对于原始的视图)。50%表示在视图的Y轴中间。
(06) training: 移动。
   a) fromXDelta: 起始动画在X轴上的偏移像素(相对于视图左上角)。
   b) toXDelta: 结束动画在X轴上的偏移像素(相对于视图左上角)。
   c) fromYDelta: 起始动画在Y轴上的偏移像素(相对于视图左上角)。
   d) toYDelta: 结束动画在Y轴上的偏移像素(相对于视图左上角)。
(07) rotate: 旋转。
   a) fromDegrees: 起始动画在的角度。可以是负数,也可以大于360。
   b) toDegrees: 起始动画在的角度。可以是负数,也可以大于360。
   c) pivotX: 动画旋转时,中心点在X轴上的位置(相对于原始的视图)。50%表示在视图的X轴中间。
   d) pivotY: 动画旋转时,中心点在Y轴上的位置(相对于原始的视图)。50%表示在视图的Y轴中间。
rotate既可以顺时针旋转,也可以逆时针旋转。

2. interpolator的样式

系统自带的interpolator样式如下:

@android:anim/accelerate_decelerate_interpolator @android:anim/accelerate_interpolator @android:anim/anticipate_interpolator @android:anim/anticipate_overshoot_interpolator @android:anim/bounce_interpolator @android:anim/cycle_interpolator @android:anim/decelerate_interpolator @android:anim/linear_interpolator @android:anim/overshoot_interpolator

View Animation的示例

点击查看: View Animation的示例源码

该示例包括View Animation的"透明/伸缩/移动/旋转",也包括"它们的组合"。

View Animation的具体播放代码如下:

        Animation anim = AnimationUtils.loadAnimation(this, R.anim.anim_alpha);
        view.startAnimation(anim);

说明:view是一个View对象。

by skywang
Previous     Next