使用动画集,动画不会按顺序发生

时间:2014-04-05 10:34:18

标签: android animation text refresh android-animation

我试图在两个单词上设置眨眼动画,以便它们一个接一个地闪烁,但是我只做了第二个单词,可以任何人提供我做同样的方法,我正在使用API​​级别10所以,不能使用“Animatorset”。

            AnimationSet set = new AnimationSet( true );
             Animation blink = new AlphaAnimation(1, 0 );
             blink.setDuration(duration);
             blink.setFillAfter(true);
             set.addAnimation( blink );
             txtvw.setText("FIRST");
             txtvw.setVisibility(View.VISIBLE);
             txtvw.setAnimation(blink);




            AnimationSet set2 = new AnimationSet( true );
              Animation blink2 = new AlphaAnimation(1, 0 );
              blink2.setDuration(duration);
              blink2.setFillAfter(true);
              set2.addAnimation( blink );
             txtvw.setText("SECOND");
             txtvw.setVisibility(View.VISIBLE);
             txtvw.setAnimation(blink2);

2 个答案:

答案 0 :(得分:0)

如果您的代码是这样的,您的文本“first”会立即被文本“Second”替换。并显示动画。这个动画给人一种错觉,只有第二个闪烁。您的文本首先被设置为微秒,但它立即被第二个替换。

如果您想同时显示这两个文本,则可能需要使用Thread

答案 1 :(得分:0)

  1. 为相同的动画使用两个动画集(即"闪烁动画")是一种矫枉过正。您可以重复动画2次。将setRepeatCount(int)setRepeatMode(int)结合使用即可实现此目的。
  2. 如果您坚持使用帖子中提供的代码,则需要指定动画偏移量。动画偏移表示"动画在开始前等待多长时间"。例如,如果您有Animation a b ,并希望在 a 之后发生 b ,你可以使用代码:
  3. b.setStartOffset(a.getDuration());

    然后 b 动画将在 a 完成后发生。