ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android 属性动画

2021-11-16 16:30:45  阅读:150  来源: 互联网

标签:动画 set 属性 Android Animator ValueAnimator animator


属性动画

介绍

属性动画本质就是动态改变View的属性。
PS:属性动画不仅可以改变View的属性。只要是一个对象的属性,有set/get方法,就可以动态的去变化。

ObjectAnimator

ObjectAnimator类是将属性动画操作简化的一个类。
最常见用法:

//将view的tranlationX属性,在2000ms从0变化到100
ObjectAnimator.ofFloat(view,"translationX",0,100)
        .setDuration(2000)
        .start();

ObjectAnimator方法有ofInt、ofFloat、ofObject等方法,传入一个Object对象,一个对象的属性,数值变化范围(如0-100-1000),就会主动调用Object的Set方法不断去设置属性。设置之后调用更新方法(如View的重绘方法等)
XML:

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
                android:duration="2000"
                android:propertyName="translationX"
                android:valueFrom="0"
                android:valueTo="100"
                android:valueType="floatType">
</objectAnimator>

JAVA引用XML文件方法

Animator animator = AnimatorInflater.loadAnimator(context, R.animator.tranlation_animator);
animator.setTarget(view);
animator.start();

AnimatorSet

动画集,关联多个Animator动画。

//以下动画播放顺序,1->(2,3)->4
AnimatorSet set = new AnimatorSet();
set.play(2).with(3).before(1).after(4);
//动画5在1000ms后播放。
set.play(5).after(1000);
set.setDuration(2000);
set.start();

ValueAnimator(重点)

ValueAnimator是ObjectAnimator的父类,它相当于只提供了一个数据变化的功能。需要自己去实现数据变化时,具体要执行的操作。大多数时候,我们自定义一些特殊的动画的时候,都是使用ValueAnimator类。
常见用法

ValueAnimator animator = ValueAnimator.ofFloat(0,100);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
        float value = (float)animation.getAnimatedValue();
    	//数值更新时进行的操作。
    }
});
animator.setDuration(2000);

动画监听

以上几种类型的动画都支持设置此监听

animator.addListener(new Animator.AnimatorListener() {
    @Override
    public void onAnimationStart(Animator animation) {
        //动画开始监听
    }

    @Override
    public void onAnimationEnd(Animator animation) {
    	//动画结束监听
    }

    @Override
    public void onAnimationCancel(Animator animation) {
    	//动画取消监听
    }

    @Override
    public void onAnimationRepeat(Animator animation) {
    	//动画重复播放监听
    }
});

TypeEvaluator

标签:动画,set,属性,Android,Animator,ValueAnimator,animator
来源: https://blog.csdn.net/qq_43491495/article/details/119636908

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有