34

En mi aplicación de Android, estoy creando un método que muestre todas las actividades y aparezca la primera actividad.Transición de animación entre actividades usando FLAG_ACTIVITY_CLEAR_TOP

utilizo este código:

Intent intent = new Intent(this, MMConnection.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
this.startActivity(intent); 

como me di cuenta de que la transición era todavía una izquierda a la derecha de animación, puede alguien sabe si hay una manera de cambiar la animación del sistema al iniciar una actividad?

En realidad, me gustaría idealmente para tener derecho a la transición a la izquierda (como cuando se pulsa el botón de retorno)

gracias por la ayuda!

Respuesta

45

CoolMcGrr es correcto, desea utilizar overridePendingTransition(int enterAnim, int exitAnim).

Para obtener específicamente la transición estándar "botón de retroceso", utilizo estos como los enterAnim y exitAnim transiciones:

push_right_in.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="@android:integer/config_shortAnimTime"/> 
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_shortAnimTime" /> 
</set> 

push_right_out.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="@android:integer/config_shortAnimTime"/> 
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_shortAnimTime" /> 
</set> 
+1

Parece ser una mejor respuesta para mí, dado que E-Riz en realidad respondió la pregunta en lugar de simplemente publicar un enlace como lo hizo CoolMcGrrr. Entonces, otra vez E-Riz fue 8 meses más tarde para responderlo. – ArtOfWarfare

+0

más tarde, pero mejor respuesta –

+0

¿Dónde llamarías la anulaciónPendingTransition? ¿Antes o después de startActivity? – Apqu

5

El problema se produce hoy en día porque pre-ICS e ICS tienen diferentes transiciones de actividad integradas. Esto es mucho más limpio que la definición de su propia animación y SDK independiente:

Intent intent = new Intent(this, MMConnection.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NO_ANIMATION); 
this.startActivity(intent); 
finish(); 

Esto iniciará la actividad (no visible aún) y el juego de la transición "actividad acabado" a la nueva actividad.

6

que utiliza este código:

overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); 

se puede ver en estos ejemplos GmailAnimation o LopeAnimations. También puede ver más en este Blog.

Cuestiones relacionadas