setAnimation不总是工作为什么?

时间:2017-11-04 07:10:15

标签: android animation

构建此应用程序,我设法使用了一些动画 与View view.setAnimation()等一起使用它们。

这是我的代码:

 // animation Properties
    Animation fadeIn = new AlphaAnimation(0, 1);
    fadeIn.setInterpolator(new DecelerateInterpolator()); // add this
    fadeIn.setDuration(5000);

    AnimationSet animation1 = new AnimationSet(false); // change to false
    //animation.addAnimation(fadeIn);
    animation1.addAnimation(fadeIn);
    animation1.setRepeatCount(1);

    Animation fadeOut = new AlphaAnimation(1, 0);
    fadeOut.setInterpolator(new AccelerateInterpolator()); // and this
    //fadeOut.setStartOffset(fadeInDuration + timeBetween);
    fadeOut.setDuration(5000);

    AnimationSet animation = new AnimationSet(false); // change to false
    //animation.addAnimation(fadeIn);
    animation.addAnimation(fadeOut);
    animation.setRepeatCount(1);


    textViewTopBannerBizName.setAnimation(animation1);

    textViewTopBannerBizCategory.setAnimation(animation1);

所以,我想要的是textViewTopBannerBizNametextViewTopBannerBizCategory将淡入屏幕,因为我使用了 animation1

然而,当我第一次启动应用程序时,它工作得很完美,但当我再次重新启动它时,它停止了工作。

这让我想知道......为什么......?

请帮忙, 谢谢你的时间。

2 个答案:

答案 0 :(得分:1)

试试这个。(经过测试)

textViewTopBannerBizName.startAnimation(animation1);

您可以通过调用clearAnimation()然后调用startAnimation或setAnimation来清除之前缓存的动画。

<强>被修改

setAnimation

设置要为此视图播放的下一个动画。但视图动画尚未开始。

startAnimation

如果您想立即播放动画,请使用startAnimation。此方法允许对开始时间和失效进行细粒度控制,但您必须确保

1)动画设置了开始时间,

2)当动画应该开始时,视图将无效

答案 1 :(得分:0)

设置动画后,如果不是活动视图,请不要使视图无效

 imb6.setAnimation(MainActivity.blinkAnimation(mContext, true))
 invalidate();

我希望这会有所帮助。