美文网首页
Android——Animation 动画

Android——Animation 动画

作者: pkqgo | 来源:发表于2017-11-05 14:54 被阅读0次

    1.帧动画(Frame Animation)

    属于视图动画,Android1.0引入,Frame Animation命名为AnimationDrawable

    2.补间动画(Tween Animation)

    属于视图动画,Android1.0引入,在包android.view.animation下

    3.属性动画(Property Animation)

    Android3.0开始引入,在包android.animation下

    4.物理动画(Physics-based Animations)

    2017 Google IO大会提出




    一、帧动画(Frame Animation)

    1、用xml文件实现

    1.xml文件位置 res/drawable/。

    //xml代码
    <?xml version="1.0" encoding="utf-8"?>
    <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
        android:oneshot="false">
        <item
            android:drawable="@drawable/g1"
            android:duration="200" />
        <item
            android:drawable="@drawable/g2"
            android:duration="200" />
        <item
            android:drawable="@drawable/g3"
            android:duration="200" />
    </animation-list>
    
    //java代码
    //将控件背景设置为我们的AnimationDrawable资源文件
    image.setBackgroundResource(R.drawable.frame);
    mBinding.play.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //拿到要编译成AnimationDrawable的背景
            AnimationDrawable imageAnimation = (AnimationDrawable)image.getBackground();
            //开始动画
            imageAnimation.start();
        }
    });
    

    2.用java代码实现

    二、补间动画(Tween Animation)

    1.用xml动画文件实现

    1.动画文件位置res/anim

    图片.png

    2.用java代码实现

    3.类型

    alpha:透明度渐变动画效果
    scale:尺寸变化动画效果
    translate:位置移动动画效果
    rotate:转移旋转动画效果
    

    4.Animation类

    直接子类
    AnimationSet:代表着一组可以一起播放的动画。
    AlphaAnimation:控制一个对象透明度的动画。
    RotateAnimation:控制一个对象旋转的动画。
    ScaleAnimation:控制一个对象尺寸的动画。
    TranslateAnimation:控制一个对象位置的动画。
    

    三、属性动画(Property Animation)

    1.原理

    由TimeInterpolator(插值器)和TypeEvaluator(求值器)完成。
    TimeInterpolator计算时间因子,即动画运行速度,TypeEvaluator计算出具体的属性值,再通过AnimatorUpdateListener监听器里的getAnimatedValue()来获取最新属性值,来实现View具体某个属性值的动画改变。

    2.属性动画类型

    ValueAnimator   针对值变化的Animator。
    ObjectAnimator  针对Object变化的Animator。
    AnimatorSet     运行一组Animator的集合。
    

    3.Interpolators插值器

    TimeInterpolator    Animator的插值器接口
    

    4.Evaluators求值器

    TypeEvaluator   求值器接口,所有求值器必须实现该接口。
    
    IntEvaluator    计算Int类型的求值器。
    FloatEvaluator  计算Float类型的求值器。
    ArgbEvaluator   计算颜色值类型的求值器。
    

    四、物理动画

    1.原理

    动画由力驱动
    力决定了动画的加速和减速
    在每一帧中动画值和速度都会更新
    当受力达到平衡时动画停止
    

    2.FlingAnimation(基于初始动能并逐渐减弱的动画效果)

    3.SpringAnimation(基于弹簧物理原理的动画效果)

    相关文章

      网友评论

          本文标题:Android——Animation 动画

          本文链接:https://www.haomeiwen.com/subject/lmbcmxtx.html