首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何停止动画(cancel()不起作用)

如何停止动画(cancel()不起作用)
EN

Stack Overflow用户
提问于 2010-11-06 17:37:26
回答 9查看 151.5K关注 0票数 261

我需要停止正在运行的翻译动画。Animation.cancel()方法没有任何效果;动画无论如何都会一直播放到最后。

如何取消正在运行的动画?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-11-06 17:47:09

在您调用startAnimation()的任何View上调用clearAnimation()

票数 534
EN

Stack Overflow用户

发布于 2014-09-30 02:27:05

在安卓4.4.4上,似乎唯一可以停止视图上的alpha淡出动画的方法是调用View.animate().cancel() (即,在视图的ViewPropertyAnimator上调用.cancel() )。

下面是我用来在ICS前后兼容的代码:

代码语言:javascript
复制
public void stopAnimation(View v) {
    v.clearAnimation();
    if (canCancelAnimation()) {
        v.animate().cancel();
    }
}

..。使用该方法:

代码语言:javascript
复制
/**
 * Returns true if the API level supports canceling existing animations via the
 * ViewPropertyAnimator, and false if it does not
 * @return true if the API level supports canceling existing animations via the
 * ViewPropertyAnimator, and false if it does not
 */
public static boolean canCancelAnimation() {
    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
}

下面是我要停止的动画:

代码语言:javascript
复制
v.setAlpha(0f);
v.setVisibility(View.VISIBLE);
// Animate the content view to 100% opacity, and clear any animation listener set on the view.
v.animate()
    .alpha(1f)
    .setDuration(animationDuration)
    .setListener(null);
票数 44
EN

Stack Overflow用户

发布于 2015-05-28 16:59:08

如果使用的是动画侦听器,请设置v.setAnimationListener(null)。将以下代码与所有选项一起使用。

代码语言:javascript
复制
v.getAnimation().cancel();
v.clearAnimation();
animation.setAnimationListener(null);
票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4112599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档