Android开发笔记(二十四)——属性动画

补间动画和属性动画

补间动画是一种视觉现象,并没有改变View真正的值和属性
属性动画真正改变了View的属性值(如XY的坐标,宽度高度等等)

属性动画重要的类

  • ValueAnimator
  • ObjectAnimator.ofFloat()
    translationX translationY alpha rotation rotationX…

示例1

//沿着Y轴移动500,执行时间为2000ms,start()启动
tvTest.animate().translationYBy(500).setDuration(2000).start();

效果:

示例2

这个是通过View自带的方法实现了属性动画的功能:

//两秒钟之内透明度变成0
tvTest.animate().alpha(0).setDuration(2000).start();

效果:

示例3

ValueAnimator的用法:
值的变化

        ValueAnimator valueAnimator = ValueAnimator.ofInt(0,100);
        valueAnimator.setDuration(2000);
        //添加一个监听器
        valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                //valueAnimator实际的值
                Log.d("valueAnimator实际的值",animation.getAnimatedValue()+"");
                //动画的进度0-1
                Log.d("动画的进度",animation.getAnimatedFraction()+"");
            }
        });
        valueAnimator.start();

效果:

示例4

ObjectAnimator.ofFloat()的使用:

ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(tvTest,"translationY",0,500,200,800);
objectAnimator.setDuration(2000);
objectAnimator.start();

效果:

posted @ 2020-07-26 19:21  Ylxxxxx  阅读(197)  评论(0编辑  收藏  举报