2010-08-24 6 views
2

я пытаюсь оживить TextView на changeText Но всегда видим только одно направление анимации, я вижу только затуханияКак оживить FadeOut и FadeIn в то время как TextView измененный текст

Что я попробовать это: beforChange = Затухание и OnChange или после FadeIn

вот мой код в OnCreate метод моей деятельности:

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, но после того, как текст изменился и никогда FadeIn !?

ответ

6

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

+0

Звучит неплохо для меня – m6tt

1

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

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

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

Таким образом, чтобы получить TextView исчезать тогда увядать с новым контентом, я бы программным образом начал анимацию fadeOut, а не используя Textwatcher. Я бы дал анимацию fadeOut AnimationListener и анимацию. Затем вы можете установить новый текст перед началом анимации fadeIn.

+0

Знаете ли вы, как сделать его более эффективным? Я хочу только fadeout/fadein, когда вызывается setText. Я пытаюсь использовать TextSwitcher, но я не уверен, что это полезно для большего количества TextViews. – Informatic0re

 Смежные вопросы

  • Нет связанных вопросов^_^