2011-09-29 16 views
15

No he trabajado en animación en Android. Quiero animación mientras cambio de una actividad a otra en Android. quiero una animación que cambie la actividad de abajo hacia arriba como un control deslizante.Animación al cambiar de actividad en Android?

¿es posible?

Gracias de antemano

Respuesta

22

Sí es posible. check out this question. Usted tiene que definir animaciones en carpeta anim de lo que puede overide animación actual usando

overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up); 
1

Se obtiene una animación de lado esencialmente de forma gratuita al cambiar a otra actividad. ¿Esto será suficiente?

+0

¿Cómo debo hacer eso? –

+1

No ... Android lo hace por ti. –

+0

pero nunca he visto cambios laterales entre actividades, dime qué me estoy perdiendo –

8

Puede configurar la animación cuando se va a otra actividad que utiliza este

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

También se puede obtener misma animación si usted se vuelve de última actividad con la actividad anterior reemplazando el método

@Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); 

    } 
+1

En realidad tienes que cambiar las dos líneas. Ignorar callPendingTransition después de super.onBackPressed() – Randalfien

+0

@Randalfien Hecho. Gracias – Dharmendra

+0

Me pregunto por qué deberían primero llamarse 'super' y' anular' solo después? Desde el primer vistazo, parece más lógico primero "anular" la transición y luego activar el cambio, ¿no es así? –

0

puede anular la función public boolean onOptionsItemSelected(MenuItem item), yu se finish() seguido de overridePendingTransition().
Por ejemplo, agregue el siguiente código en su actividad:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: // navigation up. 
     finish(); 
     overridePendingTransition(R.anim.ENTER_ANIMATION, R.anim.EXIT_ANIMATION); 
     return true; 
    case ....: // implementation of other menu items. 
    } 
    return super.onOptionsItemSelected(item); 
} 

La otra forma es sobrescribir la función public boolean onNavigateUp(). Pero onNavigateUp() es solo para API nivel 16 y superior.

Cuestiones relacionadas