android Animation 动画

来源:互联网 发布:香蕉网络免费频道 编辑:程序博客网 时间:2024/04/29 20:05

android 中 动画效果自带的主要是四种,透明度改变动画,平移动画,放缩动画,旋转动画。当然我们一般需要的动画效果都是 把这几个动画的某几个一起使用以达到我们所需的效果。

  • Animation animation = new AlphaAnimation(0,1); //AlphaAnimation 控制渐变透明的动画效果 渐变从0到1
  • Animation animation =new ScaleAnimation(5,0,2,0); //ScaleAnimation 控制尺寸伸缩的动画效果 X从5到0,Y从2到0
  • Animation animation = new RotateAnimation(40,10); //RotateAnimation 控制画面角度变化的动画效果 从40度到10度
  • Animation animation = new TranslateAnimation(1, 20, 10, 50); //ScaleAnimation 控制尺寸伸缩的动画效果 X从1到20 Y从10到50

    以上的四种调用方式是比较常用的,当然这四个类还有别的参数创建方式。具体如下:

    这里写图片描述

    这里写图片描述

这里写图片描述

这里写图片描述

以上的构造方法中的一些参数的意义如下:

fromDegrees 开始时的角度
toDegrees 结束时的角度
pivotXValue 动画相对于物件的X坐标的开始位置
pivotYValue 动画相对于物件的Y坐标的开始位置
pivotXType 动画在X轴相对于物件位置类型
pivotYType 动画在Y轴相对于物件位置类型
fromX 动画起始时 X坐标上的伸缩尺寸
toX 动画结束时 X坐标上的伸缩尺寸

相对于物件位置的类型
有三种默认值:

RELATIVE_TO_PARENT 相对于父控件

RELATIVE_TO_SELF 相对于符自己

RELATIVE_TO_ABSOLUTE 绝对坐标

动画组合的方式

动画的组合方式一 利用 AnimationSet

利用这个动画集合这个类来把几个动画效果放在一个集合中,然后把这个动画集赋值给某个组件(动画集里的动画同时进行),
如:

       AnimationSet set = new AnimationSet(false);       Animation animation1 = new AlphaAnimation(0,1);       animation1.setDuration(500);     //动画时间毫秒数       set.addAnimation(animation1);    //加入动画集合       animation2 = new RotateAnimation(30,10);       animation2.setDuration(300);   //动画时间毫秒数       set.addAnimation(animation2);   //加入动画集合       view.startAnimation(set);

动画的组合方式 二 利用自定义文件 anim

创建 动画 welcome_fade_out.xml (文件里的动画同时进行)

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <scale    //伸缩动画        android:fillAfter="false"        android:fromXScale="1.1"        android:fromYScale="1.1"        android:interpolator="@android:anim/decelerate_interpolator"        android:pivotX="50.0%"        android:pivotY="50.0%"        android:toXScale="1.1"        android:toYScale="1.1" />    <alpha   //透明度动画        xmlns:android="http://schemas.android.com/apk/res/android"        android:fromAlpha="1.0"        android:toAlpha="0.0" /></set>

在代码中调用动画,上面的动画是由 透明度动画和 伸缩动画组合的

private Animation mFadeOut; mFadeOut = AnimationUtils.loadAnimation(this,R.anim.welcome_fade_out);        mFadeOut.setDuration(1000);        view.startAnimation(mFadeOut);

动画的组合方式 三 利用各个动画监听

每个动画其实都是可以监听的,可以监听在动画结束的时候,启动另一个动画。(动画可以有顺序的执行)

mFadeOut.setAnimationListener(new Animation.AnimationListener() {            public void onAnimationStart(Animation animation) {            }            public void onAnimationRepeat(Animation animation) {            }            public void onAnimationEnd(Animation animation) {                view.startAnimation(mFadeIn);            }        });
1 0
原创粉丝点击