android Animation 补间动画

本文详细介绍了Android中的四种基本动画效果:透明度改变、平移、放缩和旋转,并提供了实例代码。此外,还介绍了如何通过AnimationSet、XML文件和动画监听器来组合这些基本动画。

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 绝对坐标

在使用使用者四种基本的动画的时候,我们要注意的是将要进行的动画的view是在第四象限。不过是x轴向右递增,Y轴向下递增。如图:

在这里插入图片描述

动画组合的方式

####动画的组合方式一 利用 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);
            }
        });

具体使用可以参照 手把手教你使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值