Pregunta

Trato de animar un TextView en un changeText Pero siempre se ve un solo sentido de la animación, sólo veo el desvanecimiento

Lo que intento es: beforChange = fadeOut y onChange o después FadeIn

aquí está mi código en el método onCreate de mi actividad:

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

Creo que hay algo malo en mi código, pero para mi creo que tiene que trabajar.

Lo que tenemos ahora es:? En cada setText el texto modificado solamente FadeOut pero después de que el texto ha cambiado y nunca FadeIn

¿Fue útil?

Solución

TextSwitcher es exactamente lo que busca. Sólo tiene que utilizar su setInAnimation() y setOutAnimation. Que las animaciones se ejecutarán automáticamente si cambia el texto de setText()

Otros consejos

Por el aspecto de su código que está diciendo la Vista de Texto a desaparecer después de un cambio en lugar de fundido de entrada.

Además, no estoy seguro de qué tan efectivo será este código como beforeTextChanged se llama a sólo unos momentos antes de que se cambie el texto. Simplemente, no será tiempo suficiente para que cualquier animación que suceda en beforeTextChanged ya que será inmediatamente reemplazado por su código en OnTextChanged

Editar ** Responder al comentario a continuación

Así que para obtener el TextView a desaparecer a continuación, fundido de entrada con nuevos contenidos Me gustaría empezar una animación mediante programación fadeOut lugar de utilizar un Textwatcher. Daría la animación fadeOut un AnimationListener y en animationEnd a continuación, puede establecer el nuevo texto antes de iniciar la animación fadeIn.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top