2012-08-14 13 views
8

Tengo un ViewFlipper que ejecuta una animación de vista cuando se llama a showPrevious. La animación funciona bien. Pero el problema es que comienza con un retraso de más de 1 segundo. Ahora, esto no parece mucho, pero retrasa seriamente el uso de la aplicación.ViewFlipper tiene retraso "enorme"

Mis animaciones se ven así;

Animation inFromLeft = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT, -1.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f); 
inFromLeft.setDuration(350); 
inFromLeft.setInterpolator(new LinearInterpolator()); 

Animation outtoRight = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, +1.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f); 
outtoRight.setDuration(350); 
outtoRight.setInterpolator(new LinearInterpolator()); 

I establezca las animaciones usando setInAnimation y setOutAnimation;

setInAnimation(inFromLeft); 
setOutAnimation(outtoRight); 

Y luego simplemente inicie la animación usando showPrevious

¿Hay alguna razón por la que las animaciones se inicia con un retraso de más de 1 segundo, startTime de las animaciones es -1 y el StartOffset es 0.

Respuesta

2

Dos sugerencias. Primero, si es posible, cambie a usar ViewPager. Segundo, si el primero no es posible, entonces use animaciones basadas en XML. Sacar cosas del código y ponerlas en los recursos suele ser una ganancia.

+0

La solución fue cambiar a ViewPager, la animación no es exactamente la que yo quería, pero el retraso se ha ido. Cambiar las animaciones a XML no cambió nada. – Thys

1

¿Estás seguro de que la demora está sucediendo en la animación? ¿Has intentado agregar algunos registros, incluido el método startAnimation de un AnimationListener?

Si está seguro de que la demora se produce después de iniciar la animación, puede intentar usar traceview entre antes de comenzar la animación y después de que termine (utilizando un AnimationListener nuevamente). Esto te dirá lo que Android está haciendo mientras tanto.

0

Enfrentando el mismo problema que @MrThys pero solo viendo eso en dispositivos Gingerbread. No hay tales problemas en los dispositivos JellyBean.

+0

Este es un comentario, no una respuesta. – Joel

+0

Tienes razón. Pero no pude votar/comentar sobre la publicación real y estoy enfrentando el mismo problema. Han intentado animaciones basadas en XML y no han ayudado. – user1102412

+0

Eso no justifica publicarlo como una respuesta. Espere hasta que tenga suficiente reputación o haga una pregunta diferente usted mismo. – Joel