Android属性动画之ValueAnimation

  ValueAnimation是ObjectAnimation类的父类,经过前几天的介绍,相信大家对ObjectAnimation有了 一定的认识,今天就为大家最后介绍一下ValueAnimation,ValueAnimation谷歌提供了更好的过程控制,现在就以一个类计时的小动画为大家简单介绍一下:

  应用的布局文件非常简单,只有一个Button按钮,就不再赘述了。下面重点介绍一下具体的实现:

public void init() {
        button = (Button) findViewById(R.id.fourbutton);
        button.setOnClickListener(new myButtonListener());
    }

    public class myButtonListener implements View.OnClickListener{
        @Override
        public void onClick(View view) {
            final ValueAnimator animator = ValueAnimator.ofInt(1, 100);
            animator.setDuration(5000);
            animator.setInterpolator(new LinearInterpolator());//线性效果变化
            animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator valueAnimator) {
                    Integer integer = (Integer) animator.getAnimatedValue();
                    button.setText("" + integer);
                }
            });
            animator.start();
        }
    }

  以上就是小应用的全部代码了,重点在于addUpdateListener()方法的实现,通过重写ValueAnimator.AnimatorUpdateListener()的onAnimationUpdate(ValueAnimator valueAnimator)方法来对动画的整个实现过程进行控制。

  到这里关于Android的属性动画实现就介绍完毕了,现在进行一下总结。

1、常用属性:

  translationX/translationY:水平|竖直偏移量

  rotation/rotationX/rotationY:3D翻转

  scaleX/scaleY:X轴|Y轴的缩放

  X/Y:具体移动到的点

  alpha:透明度

  属性动画的这五个属性,类似于以前的value动画的四个属性,不过属性动画框架的执行效率更高,效果更好。

2、常用方法和类:

  ValueAnimation、ObjectAnimation类:对于这两个类,相信大家一定不陌生了,更多的功能请查询谷歌API

  AnimationUpdateListener、AnimationListenerAdapter:用于做属性动画的监听事件

  PopertyValuesHolder:控制动画集合的显示效果、顺序与流程控制

  AnimationSet、TypeEvaluators:值计算器和差值计算器

  Interpolator:动画显示的变化规律

3、Interpolator的属性:

  AccelerateInterpolator:不断加速

  DecelerateInterpolator:不断减速

  AnticipateInterpolator:前凸

 

  OvershootInterpolator:尾翘

  LinearInterpolator:线性变化

  BounceInterpolator:自由落体

  以上就是Interpolator差值器的6个属性,大家可以在项目中都实验一下,这样可以更好的理解和使用。

  到今天Android属性动画的总结就为大家奉献完毕,欢迎交流学习([email protected])。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。