vida una studio savedinstancestate navegar manejo intent entre desde ciclo boton activity actividades abrir android animation android-activity

una - ondestroy android



¿Cómo proporcionar animación cuando se llama a otra actividad en Android? (4)

Tengo dos Actividades A y B. Quiero tener la Animación de contracción cuando la Actividad A llama a B y maximizar la animación cuando la Actividad B llama A. No necesito los archivos xml de animación para esto.

Cuando llamamos a otra actividad en Android da su animación predeterminada y luego llama la animación de reducción.

Lo que quiero es que no se produzca la animación predeterminada y que se produzca la animación que deseo.

¿Podemos dar la animación cuando llamamos a otra actividad?


Debe usar el método OverridePendingTransition para lograrlo, que está en la clase Activity . Animaciones de muestra en la carpeta res / anim del ejemplo de apidemos. Revisalo. Más que comprobar la demostración en ApiDemos/App/Activity/animation .

Ejemplo:

@Override public void onResume(){ // TODO LC: preliminary support for views transitions this.overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left); }


Desde la API 16, puede proporcionar un paquete de opciones de actividad al llamar a Context.startActivity (Intent, Bundle) o a métodos relacionados. Se crea a través del constructor ActivityOptions :

Intent myIntent = new Intent(context, MyActivity.class); ActivityOptions options = ActivityOptions.makeCustomAnimation(context, R.anim.fade_in, R.anim.fade_out); context.startActivity(myIntent, options.toBundle());

No olvide consultar los otros métodos del generador de ActivityOptions y ActivityOptionsCompat si está utilizando la Biblioteca de soporte.


API 5+:

Para las aplicaciones que se dirigen al nivel 5 de la API, existe el método Actividades que overridePendingTransition Procedimiento de overridePendingTransition . Se necesitan dos ID de recursos para las animaciones entrantes y salientes. Una identificación de 0 desactivará las animaciones. Llámalo inmediatamente después de la llamada startActivity .

es decir:

startActivity(new Intent(this, MyActivity.class)); overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

API 3+:

Puede evitar la animación predeterminada (deslizar desde la derecha) con el indicador Intent.FLAG_ACTIVITY_NO_ANIMATION en su intento.

es decir:

Intent myIntent = new Intent(context, MyActivity.class); myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); context.startActivity(myIntent);

luego, en tu actividad solo tienes que especificar tu propia animación.

Esto también funciona para 1.5 API (Nivel 3).



Jelly Bean agrega soporte para esto con el método ActivityOptions.makeCustomAnimation() . Por supuesto, ya que solo está en Jelly Bean, es prácticamente inútil para propósitos prácticos.