AnimatorListener 动画监听器

原文链接

你可以使用下面的监听器来监听动画播放过程中的重要事件:
Animator.AnimatorListener中的接口
onAnimationStart() - 当动画开始的时候调用.
onAnimationEnd() - 动画结束时调用.
onAnimationRepeat() - 动画重复时调用.
onAnimationCancel() - 动画取消时调用.取消动画也会调用onAnimationEnd,它不会关系动画是怎么结束的。
ValueAnimator.AnimatorUpdateListener中的接口
onAnimationUpdate()动画中每一帧更新的时候调用,监听这个接口可以使用动画播放过程中由ValueAnimator计算出来的值。为了使用这个值,使用传递给事件的ValueAnimator的对象的 getAnimatedValue()接口来获取当前的动画值。如果你使用 ValueAnimator,必须实现这个方法。
依赖于你设置动画的对象或属性,你可能需要调用View的invalidate()方法来强制View占用的这部分区域使用新的属性值进行重绘自己。例如,当为Drawable 对象的颜色属性设置动画时,你只需要在该对象重绘的时候更新屏幕。所有View属性的set方法,如setAlpah()和setTranslationX()内部会自己适时的刷新View.所以在更新这些值的好似好你不需要调用invalid方法。
如果你不想实现Animator.AnimatorListener中的所有接口,你可以通过继承AnimatorListenerAdapter而不是去实现Animator.AnimatorListener接口。AnimatorListenerAdapter类为所有的方法提供了一个空实现,所以你可以根据需要实现你需要的,覆盖AnimatorListenerAdapter总原来的方法
例如:API demos中的实例Bouncing Balls创建了一个AnimatorListenerAdapter但仅仅实现了onAnimationEnd()回调:

ValueAnimatorAnimator fadeAnim = ObjectAnimator.ofFloat(newBall, "alpha", 1f, 0f);
fadeAnim.setDuration(250);
fadeAnim.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animation) {
    balls.remove(((ObjectAnimator)animation).getTarget());
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值