属性动画ObjectAnimator使用

 1.各类动画


ObjectAnimator objectAnimator1=ObjectAnimator.ofFloat(View,"translationX",100f);//X平移
ObjectAnimator objectAnimator2=ObjectAnimator.ofFloat(View,"translationY",100f);//Y平移


ObjectAnimator objectAnimator3=ObjectAnimator.ofFloat(View,"roation",  0  ,  -90 );//中心点旋转
                                                        //起始值   结束值
ObjectAnimator objectAnimator4=ObjectAnimator.ofFloat(View,"roationX",  0  , -90 , 90 );//围绕X轴旋转
                                                        //起始值 过程值 结束值
ObjectAnimator objectAnimator5=ObjectAnimator.ofFloat(View,"roationY", 360 );//围绕Y轴旋转
                                                          //结束值

ObjectAnimator objectAnimator6=ObjectAnimator.ofFloat(View,"scaleX", 1.5f );//围X轴缩放 0->1.5
ValueAnimator objectAnimator7=ObjectAnimator.ofFloat(View,"scaleY", 1, 1.5f, 1);//围Y轴缩放 1->1.5->1
//向上转型

ObjectAnimator objectAnimator8=ObjectAnimator.ofFloat(View,"alpha", 0.0f );//透明度

控件属性:

translationX , translationY , rotation , rotationX , rotationY , scaleX , scaleY , alpha 即使未在控件中写明,也会默认存在并有默认值。

2.添加监听器

objectAnimator.addListener(new AnimatorListenerAdapter(){
    public void onAnimatonEnd(Animaton animaton){
            //具体执行
    }
});

3.设置动画时长

objectAnimator.setDuration(1000);

4.设置重复次数

objectAnimator.setRepeatCount(0);

参数:

  • 0 为不重复
  • 1~n 为具体次数
  • ValueAnimator.INFINITE 为无限循环

5.评估程序

有默认,可不写。

评估程序(类接口)主要用于告知属性动画系统如何计算指定属性的值。评估程序使用Animatio类提供的计时数据(动画的起始值和结束值)来计算属性添加动画效果后的值。属性动画示化可提供的评估程序如下:

  • IntEvaluator:用于计算Int类型的属性值的默认评估程序。
  • FloatEvaluator:用于计算Float类型的属性值的默认评估程序。
  • ArgbEvaluator:用于计算颜色类型的属性值(用十六进制教表示)的默认评估程序。
  • TypeEvaluator:此接口用于自定义一个评估程序。如果要添加动画效果的对象属性值不是Int类型、Float类型或颜色类型,那么必须实现TypeEvaluator接口,才能指定如何计算对象的属性添加动画效果之后的值。如果不想使用默认的评估程序处理Int类型、Float类型或颜色类型的数据,还可以为这些类型的值指定自定义的TypeEvaluator。

6.添加插值器

objectAnimator.setInterpolator( new LinearInterpolator() );

插值器:

  • AccelerateDecelerateInterpolator:该插值器的变化率在开始和结束时缓慢,但在中间会加快(默认)。
  • AccelerateInterpolator:该插值器的变化率在开始时较为缓慢,然后会加快。
  • AnticipateInterpolator:该插值器先反向变化,然后急速正向变化。
  • AnticipateOvershootInterpolator:该插值器先反向变化,然后急速正向变化,然后超过定位值最后返回最终值。
  • BounceInterpolator:该插值器的变化会跳过结尾处。
  • CycleInterpolator:该插值器的变化会在指定数量的周期内重复。
  • DecelerateInterpolator:该插值器的变化率开始很快、然后减速。
  • LinearInterpolator:该插值器的变化率恒定不变。
  • OvershootInterpolator:该插值器会急速正向变化,再超出最终值,然后返回。
  • TimeInterpolator:该接口用于自定义一个插值器。

7.启动/停止动画

AnimatorSet animatorSet1=new AnimatorSet();
animatorSet1.play(objectAnimator1);                          //播放~
animatorSet1.play(objectAnimator1).with(objectAnimator2);    //播放~和~
animatorSet1.play(objectAnimator1).before(objectAnimator2);  //播放~在~之前
animatorSet1.play(objectAnimator1).after(objectAnimator2);   //播放~在~之后

//AnimatorSet可当Animator使用
AnimatorSet animatorSet2=new AnimatorSet();
animatorSet2.play(animatorSet1).before(objectAnimator2);

animatorSet2.start();                                       //启动AnimatorSet

boolean isrunning=animatorSet2.isRunning();                 //是否处于运行中

animatorSet2.pause();                                       //暂停

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下嗷呜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值