Вопрос

Я пытаюсь анимировать TEXTVIEW на ChangeText, но всегда вижу только одно направление анимации, я вижу только Fadeout

Что я пытаюсь: Beforchange = Fadeout и Onchange или после Fadein

Вот мой код в методе Onreate моего действия:

    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 измененный текст только Fadeout, но после того, как текст изменился и никогда не заканчивается!?

Это было полезно?

Решение

TextsWitcher - это именно то, что вы ищете. Просто используйте их setInAnimation() а также setOutAnimation. Отказ Чем анимации будут работать автоматически, если вы измените текст setText()

Другие советы

По внешнему виду вашего кода вы говорите текстовое представление, чтобы исчезнуть после изменения, а не исчезнуть.

Также я не уверен, насколько эффективен этот код, как BEFORETEXTCHANGED, призван только моменты, прежде чем текст изменен. Там просто будет достаточно времени для любой анимации, чтобы произойти на BeForextChanged, поскольку он будет мгновенно заменен вашим кодом в OnTextChanged

Редактировать** Ответить на комментарий ниже

Итак, чтобы получить TextView для исчезновения, то выцветайте с новым контентом, я бы программно запустил анимацию Fadeout, а не использовать текстовой дорожнику. Я бы дал анимацию Fadeout АнимацияListener. И на анимации вы можете затем установить новый текст перед началом анимации Fadein.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top