首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多次重复AnimatorSet动画

多次重复AnimatorSet动画
EN

Stack Overflow用户
提问于 2015-02-11 12:19:08
回答 3查看 6.5K关注 0票数 9

我已经试了好几个小时了,我觉得是时候放弃了。如何循环用xml定义的AnimatorSet?

代码语言:javascript
复制
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <objectAnimator />

    <objectAnimator />

    <objectAnimator />

    <objectAnimator />

</set>

我尝试了几十种startOffsetrepeatCountduration在单一objectAnimator上的组合,但这并不是正确的方法。

我读到了关于有前途的解决办法的文章:

代码语言:javascript
复制
a.addListener(new AnimatorListenerAdapter() {

    @Override
    public void onAnimationEnd(Animator animation) {
        animation.start();
        Log.i();
    }
});

但是它不起作用:onAnimationEnd只被一次调用,动画被重复,然后onAnimationEnd不再被调用。

这里的其他类似问题涉及错误的答案(引用android.view.animation框架),或者建议为单个objectAnimator定义自定义内插器,但这并不是我想要的。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-03 16:08:49

我和一个同时播放两个动画的AnimatorSet也有同样的问题。

我用animationSet.play(anim1).with(anim2)创建了这个集,结果我的动画只重复了一次。

将其更改为animationSet.play(anim1).with(anim2).after(0)解决了我的问题,并允许动画无限期地循环。

似乎有一个bug迫使你在动画中至少有一个连续的步骤,然后动画才能循环不止一次。

票数 5
EN

Stack Overflow用户

发布于 2015-12-16 12:06:56

我遇到了完全相同的情况。经过近一天的试验,我突然怀疑动画师应该在主线程上启动。而且它是有效的。

代码语言:javascript
复制
mRandomPointAnimatorSet.addListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationStart(Animator animation) {
            Log.i(TAG, "onAnimationStart");
            mRandomPointView.setVisibility(VISIBLE);
        }

        @Override
        public void onAnimationEnd(Animator animation) {
            Log.i(TAG, "onAnimationEnd");
            mRandomPointView.setVisibility(INVISIBLE);
            mHandler.post(new Runnable() {
                @Override
                public void run() {
                    if (isShown()) {
                        requestLayout();
                        mRandomPointAnimatorSet.start();
                    }
                }
            });
        }
    });

我不知道为什么。

票数 3
EN

Stack Overflow用户

发布于 2015-02-11 12:27:32

当您以递归方式重新启动动画时,您不会将侦听器添加到动画中。您需要创建一个AnimatorListenerAdapter对象并重用它。

希望我对你说得有道理!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28454208

复制
相关文章

相似问题

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