View——属性动画

属性动画就是用来替代View的视图动画的,可以改变View的属性,从而不会出现像视图动画一样只能点击原来的位置。

ObjectAnimator

属性动画中最重要的类,通过此类进行动画的控制。
通过静态工厂类返回一个ObjectAnimator
参数说明:第一个参数是要操作的View,第二个是要操作的属性(横向平移或者纵向平移、旋转、渐变等),第三个是可变的float数组,用于该属性的变化取值范围。

CustomView customView = findViewById(R.id.customView);
ObjectAnimator animator = ObjectAnimator.ofFloat(customView, "alpha", 1.0f, 0.0f).setDuration(5000);
animator.setRepeatCount(3);//设置动画变化次数
animator.start();

详细属性介绍:
translationX和 translationY:用来沿着X轴或者Y轴进行平移。
rotation、rotationX、rotationY:用来围绕View的支点进行旋转。
alpha:透明度,默认是1(不透明),0代表完全透明。

:在使用某属性的时候,需要有get和set方法,如果没有,该动画则无法生效,如果没有,可以自定义一个。

动画的监听

完整动画具有start、Repeat、End、Cancel四个过程,

animator.addListener(new Animator.AnimatorListener() {
           @Override
           public void onAnimationStart(Animator animator) {

           }

           @Override
           public void onAnimationEnd(Animator animator) {

           }

           @Override
           public void onAnimationCancel(Animator animator) {

           }

           @Override
           public void onAnimationRepeat(Animator animator) {

           }
       });

更多的时候我们只需要需要使用End。则可以

 animator.addListener(new AnimatorListenerAdapter() {
           @Override
           public void onAnimationEnd(Animator animation) {
               super.onAnimationEnd(animation);
           }
       });

组合动画

AnimatorSet

AnimatorSet提供了play()方法,将ObjectAnimator对象作为参数继续传递。

//串行
set.playSequentially(animator1, animator2);
还可以通过after()、before()方法实现。

//并行
set.playTogether(animator2,animator3);
并行还可以通过with()完成

PropertyValuesHolder

只能是多个动画一起执行,不能串行执行

XML中使用属性动画

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值