android 属性动画总结

本文详细介绍了Android中基础属性动画ObjectAnimator的使用方法,包括单个动画的创建与播放、多个动画的组合方式,以及如何通过AnimatorSet类实现复杂的动画效果。此外,还探讨了ValueAnimator的应用场景,介绍了自定义评价器和补间器的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最基础属性动画 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());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值