分享

Android ViewPropertyAnimator 属性动画概述

 程序员读书空间 2022-11-17 发布于浙江

在Android中,ViewPropertyAnimator、ObjectAnimator、ValueAnimator是实现属性动画的三种方式,ViewPropertyAnimator 和 ObjectAnimator 的内部实现其实都是 ValueAnimator

属性动画的机制已经不是再针对于View而进行设计的了,而是一种不断地对值进行操作的机制,在决大多数的开发中,主要都还是对View进行动画操作的。

所以在Android 3.1系统当中补充了ViewPropertyAnimator这个机制,专门针对View来实现属性动画。

对于 ViewPropertyAnimator 通过View类的animate()方法来获取,从另一个角度 来描述 就是View类的animate()方法,其作用就是返回ViewPropertyAnimator的实例对象。

ViewPropertyAnimator 基本使用代码如下:

//这里的 mImageView 就是执行动画的 View //获取ViewPropertyAnimator  ViewPropertyAnimator lAnimator = mImageView.animate();    lAnimator.setDuration(2000);  //线性动画插值器  lAnimator.setInterpolator(new LinearInterpolator());  //从0 向右移动 200 (相对View自己)  lAnimator.translationX(200f);//    //相对于上一次的位置移动 (初始是0)//    lAnimator.translationXBy(300f);//////    //移动到指定位置//    lAnimator.x(200f);//    //在当前位置 的基础上增加//    lAnimator.xBy(200f);    lAnimator.setListener(new Animator.AnimatorListener() {    @Override    public void onAnimationStart(Animator animation) {      Log.d("动画","动画开始");    }        @Override    public void onAnimationEnd(Animator animation) {      Log.d("动画","动画结束");    }        @Override    public void onAnimationCancel(Animator animation) {        }        @Override    public void onAnimationRepeat(Animator animation) {        }  });    lAnimator.setUpdateListener(new ValueAnimator.AnimatorUpdateListener() {    @Override    public void onAnimationUpdate(ValueAnimator animation) {      Log.d("动画","动画执行中"+animation.getAnimatedValue());    }  });    lAnimator.start();

translationX(200f)


translationXBy(300f)


lAnimator.x(200f)

lAnimator.xBy(200f)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多