天天看点

一起Talk Android吧(第四百八十七回:值动画的代码实现方法)知识回顾使用方法:示例代码

文章目录

  • 知识回顾
  • 使用方法:
  • 示例代码

各位看官们大家好,上一回中咱们说的例子是"值动画:ValueAnimator",这一回中咱们说的例子是"值动画的代码实现方法"。闲话休提,言归正转,让我们一起Talk Android吧!

知识回顾

我们在上章回中介绍了值动画的概念以及xml的配置方法,本章回中将介绍如何使用代码来实现值动画.

使用方法:

  1. 创建ValueAnimator类对象,也就是动画对象;
  2. 通过ValueAnimator类方法设定动画运行参数 ;比如setDuaration();
  3. 给动画对象添加监听器,在监听器中对控件进行相关操作;
  4. 通过动画对象的start()方法启动动画;

我们需要对该方法做一些细节上的补充说明:

  • 创建对象通过

    ValueAnimator

    类的静态方法实现。常用的实现方法:

    ofInt(),ofFloat()和ofObject();

    它们用来指定动画的值区间,它们的参数数量是可变的,表示动画的变化范围也是多个区间。前两个方法只是传入值的类型不一样,使用方法完全相同;最后一个方法,需要传入类的对象,常用的是字母,颜色颜色等类型。
  • ValueAnimator

    类还有其方法,这些方法主要用来设置动画运行参数,比如重复模式,重复次数,插值器。
  • 动画监听器有两种:动画变化值监听器和动画变化状态监听器。常用的是变化值监听器,它可监听到动画变化时的数据。变化状态监听器可以监听到动画开始、结束,重复这些状态。
  • 在动画的监听器中可以获取到动画变化时值,值的类型与创建对象使用的类型相同。我们需要依据不同的值对控件进行不同的操作,进而实现动画效果;

ValueAnimator

的核心思想:它只负责把在指定的区间内做计算,并且把计算的值通过监听器返回来,我们需要在监听器中结合计算出的值来操作控件,进而实现动画效果。

示例代码

ValueAnimator valueAnimator = ValueAnimator.ofInt(10,1);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animator) {
        int value = (int) animator.getAnimatedValue();
        mTVValueAnimator.setText(String.valueOf(value));
    }
});
valueAnimator.setDuration(10000);
valueAnimator.setInterpolator(new LinearInterpolator());
valueAnimator.start();
           

上面的代码中先是创建了一个值动画,并且设置它的值变化范围为10到1,然后在该动画对象的监听器中获取这些值,同时把这些值设置到TextView控件上,这样我们就能看到这些值了。

我们给动画设置的运行时间是10s,并且添加了线性插值器,这样可以保证每秒显示一个变化值。代码中省略了TextView的布局和代码,拿来直接使用,大家可以自行补上。编译并且运行该程序可以得到一个显示倒计时的动画,该动画从数字10到1逐渐变化,我在这里就不演示具体的效果了,希望大家自己动手实践。

看官们,关于"值动画的代码实现方法"的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!