Frage

ich versuche, eine Textview auf einem changeText zu animieren Aber immer nur in eine Richtung der Animation sehen, ich sehe nur die fadeout

Was ich versuche, ist: beforChange = fadeOut und onChange oder nach FadeIn

Hier ist mein Code in der onCreate Methode meiner Tätigkeit:

    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);

Ich denke, es ist etwas falsch in meinem Code ist aber für mein glauben, dass es an der Arbeit hat.

Was ich jetzt habe, ist:? Auf jedem setText der geänderte Text nur FadeOut aber nach dem Text geändert hat und nie FadeIn

War es hilfreich?

Lösung

TextSwitcher ist genau das, was Sie suchen. Verwenden Sie einfach ihre setInAnimation() und setOutAnimation. Als die Animationen werden automatisch ausgeführt, wenn Sie den Text von setText() ändern

Andere Tipps

Durch den Blick des Codes Sie das Textview sagen nach einer Änderung verblassen nicht verblasst in.

Auch ich bin nicht sicher, wie effektiv dieser Code wird als beforeTextChanged nur Momente aufgerufen wird, bevor der Text geändert wird. Es gibt einfach wont genug Zeit für jede Animation sein auf beforeTextChanged geschehen, da es sofort durch den Code ersetzt wird in OnTextChanged

Bearbeiten ** Antworten unten Kommentar

Also das Textview erhält dann verblassen verblassen in mit neuen Inhalten würde ich programmatisch eine fadeOut Animation starten, anstatt eine Textwatcher verwenden. Ich würde die fadeOut Animation ein AnimationListener und auf animationEnd Sie können dann den neuen Text festlegen, bevor Sie Ihre fadeIn Animation zu starten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top