我尝试在ChangeText上对文本视图进行动画动画,但总是看到动画的一个方向,我只看到vadeout

我尝试的是:beforchange = vadeout和onchange或fadein之后

这是我的活动方法中我的代码:

    final Animation out = new AlphaAnimation(1.0f, 0.0f);
    out.setDuration(1000);

    final Animation in = new AlphaAnimation(0.0f, 1.0f);
    in.setDuration(1000);


    bidFirst.setAnimation(out);
    bidMiddle.setAnimation(out);
    bidLast.setAnimation(out);

    TextWatcher bidWatcher = new TextWatcher() {
      public void onTextChanged(CharSequence s, int start, int before, int count) {
        in.startNow();
        bidFirst.setAnimation(out);
        bidMiddle.setAnimation(out);
        bidLast.setAnimation(out);
      }

      public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        out.startNow();
        bidFirst.setAnimation(in);
        bidMiddle.setAnimation(in);
        bidLast.setAnimation(in);
      }

      public void afterTextChanged(Editable s) {
      }
    };
    bidFirst.addTextChangedListener(bidWatcher);
    bidMiddle.addTextChangedListener(bidWatcher);
    bidLast.addTextChangedListener(bidWatcher);

我认为我的代码有问题,但我相信它必须起作用。

我现在所拥有的是:在每个setText上,更改的文本仅淡入淡出,但是在文本已更改并且永不褪色之后!

有帮助吗?

解决方案

TextSwitcher正是您要寻找的。只是使用他们的 setInAnimation()setOutAnimation. 。如果您通过更改文本,则动画将自动运行 setText()

其他提示

从代码的外观看,您正在告诉文本视图在更改后而不是淡入。

另外,我不确定此代码的效率如何,因为在更改文本之前,只需将其调用。在beforetextchanged上,任何动画都不会有足够的时间,因为它将在ontextchanged中立即被您的代码替换

编辑** 回复下面的评论

因此,要使文本视图淡入淡出,然后淡入新内容,我将逐渐启动淡出的动画,而不是使用文本观看者。我会给淡出的动画 AnimationListener 然后,在AnimationEnd上,您可以在开始Fadein动画之前设置新文本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top