Android ViewPropertyAnimator:让动画变得简单起来!

官网地址:
https://developer.android.com/reference/android/view/ViewPropertyAnimator.html

ViewPropertyAnimator的优势

当一个View的几个属性并行执行动画时,ViewPropertyAnimator提供了一种更简单的实现方式。ViewPropertyAnimator是在3.1系统中加入的,ViewPropertyAnimator跟ObjectAnimator很像,也能改变View的实际值,但是ViewPropertyAnimator只能作用于View而不能作用于其他object 。假如需要同时对多个属性执行动画时,ViewPropertyAnimator效率更高,代码更简洁、更易读。

常用方法备注
translationX(float value)、translationY(float value)translationX、translationY分别为向X、Y轴的移动value的距离
x(float value)、y(float value)如x(valueX)、y(valueY):将目标View移动到(valueX,valueY)的坐标点上
alpha()设置View的透明度
rotation()旋转View
scaleX(float value)、scaleY(float value)设置View的放缩,value是倍数,如设置scaleX(2f)是View在X轴方向放大2倍,scaleY同理
setDuration(long duration)设置动画持续时间
setStartDelay(long startDelay)动画开始之前的延迟时间
setListener(Animator.AnimatorListener listener)动画监听
setInterpolator(TimeInterpolator interpolator)时间插值器,用来修饰动画效果
setUpdateListener(ValueAnimator.AnimatorUpdateListener listener)API 19或以上使用 动画更新回调
withStartAction(Runnable runnable)动画开始时设置的行为
withEndAction(Runnable runnable)动画结束时设置的行为

ViewPropertyAnimator和ObjectAnimator使用对比

先看效果图:
GIF.gif

如上图中的效果,将View移动到(500f,500f)坐标,分别使用ViewPropertyAnimator和ObjectAnimator来实现:

1、多个ObjectAnimator 组合:

ObjectAnimator animX = ObjectAnimator.ofFloat(myView, "x", 500f);
ObjectAnimator animY = ObjectAnimator.ofFloat(myView, "y", 500f);
AnimatorSet animSetXY = new AnimatorSet();
animSetXY.playTogether(animX, animY);
animSetXY.start();

2、或者使用一个ObjectAnimator+PropertyValuesHolder :

PropertyValuesHolder pvhX = PropertyValuesHolder.ofFloat("x", 500f);
PropertyValuesHolder pvhY = PropertyValuesHolder.ofFloat("y", 500f);
ObjectAnimator.ofPropertyValuesHolder(myView, pvhX, pvyY).start();

3、使用ViewPropertyAnimator:

myView.animate().x(500f).y(500f).start();

可见在特定情况下使用ViewPropertyAnimator可以大大简化了代码量和可阅读性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_小马快跑_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值