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).
Escribió un tutorial para que pueda animar la entrada y salida de su actividad,
Disfrutar:
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.