【问题标题】:Repeating FadeOut on TextView在 TextView 上重复淡出
【发布时间】:2016-10-25 12:33:00
【问题描述】:

当用户尝试做他们不应该做的事情时,我有一个 TextView 作为警告标签。我希望它在最后停留在那里之前闪烁几次。 一旦工作正常,我就会闪烁,但它不会重复动画。我的动画有问题吗?(因为我已经阅读了有关 android 动画的其他问题,并且据说它们可以工作)

private void blink(int count){
    if(count>0) {
        AnimationSet anime = new AnimationSet(true);
        Animation anim = new AlphaAnimation(0.0f, 1.0f);
        anim.setDuration(600);
        Animation ani = new AlphaAnimation(1.0f, 0.0f);
        ani.setDuration(600);
        ani.setStartOffset(2000);
        anime.addAnimation(anim);
        anime.addAnimation(ani);
        //anime.setStartOffset(0);
        //anime.setStartTime(0);
        //anime.setRepeatCount(Animation.INFINITE);
        anime.setRepeatCount(count);
        anime.setRepeatMode(Animation.RESTART);
        anime.setFillAfter(true);
        tWarningText.startAnimation(anime);

    }

}

当某些按钮被按下时会调用 clearAnimation,因为 tWarningText 是一个警告文本,我希望它一直保留在那里,直到他们对此采取措施。

【问题讨论】:

  • 如果你想在用户出错时重复眨眼10次,你可以使用setRepeatCount(10)

标签: android android-studio android-animation textview


【解决方案1】:

您可以限制重复次数,而不是在一定时间后清除动画。这也应该可以正常工作。

public void blink(View view, int count) {
    Animation anim = new AlphaAnimation(0.0f, 1.0f);
    anim.setDuration(50);
    anim.setStartOffset(20);
    anim.setRepeatMode(Animation.REVERSE);
    anim.setRepeatCount(count);
    view.startAnimation(anim);
}

用法: blink(textView, 10);

来自sany's answer

【讨论】:

  • 使用 setRepeatCount 不会导致它重复,就像将它设置为无限重复不会导致它重复一样。这就是问题
  • 尝试减少 setStartOffset(20)setDuration(50) 并使用单个动画而不是动画集。使用我提供的确切方法并检查。
猜你喜欢
  • 1970-01-01
  • 2015-07-08
  • 1970-01-01
  • 2012-07-11
  • 2017-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-29
相关资源
最近更新 更多