Android 中的动画基础笔记

来源:互联网 发布:淘宝违规处理怎么处理 编辑:程序博客网 时间:2024/05/16 16:09

Android 中的动画

Android 的基础动画分为四种:

1. Tween Animation (变化动画)2. Frame Animation (帧动画)3. Layout Animation (布局动画)4. Property Animation (属性动画)

Tween Animation

在 Android 也有四种常用动画,分别为

1. Alpha :渐变透明度动画2. Scale :渐变尺寸缩放动画3. Translate : 位置移动动画4. Rotate : 旋转动画

Alpha Animation

fromAlpha :动画起始透明度toAlpha :动画终止透明度0.0 表示完全透明1.0 表示完全不透明

Translate Animation

fromXDelta/fromYDelta :起始时 X,Y 坐标。toXDelta/toYDelta :结束时 X,Y 坐标。

Rotate Animation

fromDegress :起始的角度toDegress :终止的角度

Tween Animation

1. Duration :动画持续时间(单位:毫秒)2. fillAfter :设置为 true ,动画转化在动画结束后被应用3. fillBefore :设置为 true ,动画转化在动画结束前被应用4. interpolator :动画插入器5. repeatCount :动画重复次数6. repeatMode :顺序重复/倒叙重复7. startOffset :动画之间的时间间隔

Animation 的实现方式有两种

静态方式(简单):通过配置文件实现( /res/anim )–alpha 、 scale 、 translate 、 rotate。
动态方式(灵活):通过 Java 代码实现–AlphaAnimation 、 ScaleAnimation 、 TranslateAnimation 、 RotateAnimation。

动态方式 Example ( Java 代码创建 )

//创建 Alpha 动画Animation alpha = new AlphaAnimation(0.1f,1.0f)//设置动画时间alpha.setDuration(5000);//开始播放view.startAnimation(alpha);

静态方式 ( 加载配置文件 )

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <!--formX 为起始坐标        toX 为结束坐标        pivotX 为伸缩动画相对于 x , y坐标开始的位置-->        <scale            android:fromXScale="50%"            android:fromYScale="50%"            android:toXScale="100%"            android:toYScale="100%"/></set>
//加载 /res/anim/ 目录下面的动画布局文件Animation scale = AnimationUtils.loadAnimation(context,R.anim.XXX);//播放动画view.startAnimation(scale)

组合动画

动画 A 与动画 B,先播放 A ,然后播放 B 。首先设置 A 的 AnimationListener 。 当 onAnimationEnd 触发时,播放 B。

A.setAnimationListener(new Animation.AnimationListener() {    @Override    public void onAnimationStart(Animation animation) {    }    @Override    public void onAnimationEnd(Animation animation)    {        //在这里播放 B 动画    }    @Override    public void onAnimationRepeat(Animation animation)    {    }});

写一个动画集 AnimationSet ,在里面定义动画 A 与 B,为动画 B 设置一个 startOffset ,这个值就是动画 A 播放所需的时间。

<scale    android:fromXScale="50%"    android:fromYScale="50%"    android:toXScale="100%"    android:toYScale="100%"/><aplha    android:fromAlpha="1.0"    android:toAlpha="0.0"    android:startOffset="5000"    />
原创粉丝点击