android 属性动画总结

来源:互联网 发布:淘宝网男士短袖 编辑:程序博客网 时间:2024/05/21 16:44

最基础属性动画 ObjectAnimator

  1. 单个动画:
    ObjectAnimator objectAnimator1 = ObjectAnimator.ofFloat(view ,”scaleX”,1f ,3f,1f );
    创建objectAnimtor ,第一个参数是操作的view, 第二个参数是动画类别,来自 view的get和set方法,例如getScaleX 和setScaleX 。之后的参数是变更范围
  2. 多个动画组合:
    //组合动画:
    //组合动画主要借助AnimatorSet这个类, 再进行play()方法,会返回一个AnimatorSet.Builder的实例
    //paly方法会传入一个动画对象,这个动画是基础动画,在这个动画的基础上进行扩张
    // AnimatorSet.Builder 里面有四个方法:
    //after (Animator ) 现有动画插入传入动画之后执行 (after 的动画最先执行)
    //after (long delay) 现有动画推迟delay ms之后执行
    //before (Anumator ) 现有动画在插入动画之前执行
    //with 一起执行
    // 例如:
    //一个组合动画是先执行X轴缩放,在旋转360度过程中进行透明度转化
    AnimatorSet animationSet = new AnimatorSet();
    animationSet.play(rotate).with(objectAnimator2).after(objectAnimator1);
    animationSet.setDuration(3000);
    //动画监听方法
    animationSet.addListener(new AnimatorListenerAdapter() { //动画监听的适配器
    @Override
    public void onAnimationEnd(Animator animation) {
    super.onAnimationEnd(animation);
    }
    });
    animationSet.start();

ValueAnimator 动画

 1. ValueAnimator  键值动画,初始化:` ValueAnimator anim = ValueAnimator.ofObject(new PointEvaluator(),startPoint,endPoint);`   参数说明: //第一个参数是 开始点到结束点的平滑过程 之后的参数是变更范围 2.PointEvaluator() 第一个参数可以自己定义: 实现了TypeEvaluator 接口,实现了 evaluate(float fraction, Object startValue, Object endValue) 方法,里面有第一个参数是渐变的程度 fraction 的值取决于补简器中的getInterpolation 方法返回的input值。    *getInterpolation 获得形参,再进行运算,返回fraction 。,    * 系统默认的Interpolation 是AccelerateDecelerateInterpolator 返回代码是    *    * return (float)(Math.cos((input + 1) * Math.PI) / 2.0f) + 0.5f;

3. 补间器 Interpolator 主要实现getInterpolation (float input)方法, input由系统不断计算出来,从0到1,返回fraction 值,提供给Evaluator 类的 evaluate(float fraction, Object startValue, Object endValue) 方法

//设置补间器。补间器是一个接口,内部有实例方法,比如:
//AccelerateInterpolator()就是加速度的补间器
//BounceInterpolator 这个是有弹跳器的。
anim.setInterpolator(new BounceInterpolator());

原创粉丝点击