Tengo tres actividades cuyos modos de lanzamiento son de instancia única.
Usando onfling()
, los balanceo a izquierda y derecha.
El problema es que cuando deslizo de derecha a izquierda, la transición de deslizamiento está bien, pero cuando deslizo de izquierda a derecha, obtengo la transición de deslizar de derecha a izquierda.
Sé por qué sucede esto, porque siempre estoy enviando nuevas intenciones. Pero, ahora necesito cambiar la animación de deslizamiento de izquierda a derecha.
Sé que hay un método llamado overridingTransitionPending()
, pero no sé cómo definir mi animación en XML.
Respuestas:
Use este xml en
res/anim/
Esto es para animación de izquierda a derecha:
Esto es para animación de derecha a izquierda:
En su codificación, use la intención de izquierda a derecha:
En su codificación, use la intención como de derecha a izquierda
fuente
Si desea que la transición funcione para toda la aplicación, puede crear una
rootacivity
y heredarla en la actividad que necesita. Llamada onCreate de Root ActivityoverridePendingTransition
con la dirección deseada. YonStart
llameoverridePendingTransition
con otra dirección si se reanuda la actividad. Aquí estoy dando el código de ejecución completo a continuación. Corrígeme si estoy equivocado.crea este archivo xml en tu carpeta anim
anim_slide_in_left.xml
anim_slide_in_right.xml
anim_slide_out_left.xml
anim_slide_out_right.xml
RaízActividad
PrimeroActividad
Segunda actividad
Tercera actividad
y finalmente Manifiesto
fuente
Hizo un código de muestra implementando lo mismo con efectos de diapositivas de izquierda, derecha, arriba y abajo. (Para aquellos que no quieren hacer todos esos archivos anim xml :))
Echa un vistazo al código en github
fuente
Use este estilo como lo definí a continuación.
aparece - haz que solo aparezca.xml
===========================================
haz que se desvanezca lentamente en view.xml
==========================================
fadeout: haz que desaparezca lentamente de view.xml
==========================================
push_down_in.xml
==========================================
push_down_out.xml
==========================================
push_left_in.xml
==========================================
push_left_out.xml
==========================================
push_right_in.xml
==========================================
push_right_out.xml
==========================================
push_up_in.xml
==========================================
push_up_out.xml
==========================================
rotación.xml
==========================================
scale_from_corner.xml
==========================================
scale_torwards_corner.xml
==========================================
shrink_and_rotate_a (salir) .xml
==========================================
shrink_and_rotate_b (entrada) .xml
========================================
blink.xml
========================================
ZoomIn.xml
========================================
ZoomOut.xml
========================================
FadeIn.xml
========================================
FadeOut.xml
========================================
Move.xml
========================================
SlideDown.xml
========================================
SlideUp.xml
========================================
Bounce.xml
fuente
Puede sobrescribir su animación de actividad predeterminada. Aquí está la solución que uso:
Cree un "CustomActivityAnimation" y agréguelo a su tema base con "windowAnimationStyle".
Cree la carpeta anim bajo la carpeta res y luego cree estos cuatro archivos de animación:
slide_in_right.xml
slide_out_left.xml
slide_in_left.xml
slide_out_right.xml
Este es mi proyecto de muestra en github.
Eso es todo ... Feliz codificación :)
fuente
Además, puedes hacer esto:
Y no necesitas agregar ninguna animación xml
fuente
No pude encontrar ninguna solución para este tipo de animación usando ViewPropertyAnimator.
Aquí hay un ejemplo:
Diseño:
Animar: de derecha a izquierda y salir de la vista:
Animar: de derecha a izquierda ingresa a la vista:
fuente
Si su nivel de API es 19+, puede usarlo
translation
como se indica arriba. Si su nivel de API es inferior a 19, puede consultar un tutorial similar: http://trickyandroid.com/fragments-translate-animation/fuente
Para deslizamiento de derecha a izquierda
res / anim / in.xml:
res / anim / out.xml:
en el archivo Java de actividad:
puede cambiar los tiempos de duración en los archivos xml para la animación de diapositiva más larga o más corta.
fuente