Desde API 16, puede proporcionar un paquete de opciones de actividad al llamar a Context.startActivity (Intent, Bundle) o 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 constructor ActivityOptions y ActivityOptionsCompat si está utilizando la biblioteca de soporte.
API 5+:
Para las aplicaciones orientadas al nivel de API 5+, existe el overridePendingTransition
método Actividades . Se necesitan dos ID de recursos para las animaciones entrantes y salientes. Un id de 0
deshabilitará las animaciones. Llame a esto inmediatamente después de la startActivity
llamada.
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 (deslice desde la derecha) con la Intent.FLAG_ACTIVITY_NO_ANIMATION
bandera en su intención.
es decir:
Intent myIntent = new Intent(context, MyActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
context.startActivity(myIntent);
luego en tu Actividad simplemente tienes que especificar tu propia animación.
Esto también funciona para la API 1.5 (nivel 3).
R.anim.fade_in
todavía una animación de archivo xml que suponemos tenerres\anim
?Debe usar el método OverridePendingTransition para lograrlo, que se encuentra en la clase Activity . Animaciones de muestra en la carpeta res / anim del ejemplo de apidemos. Revisalo. Más que ver la demostración en ApiDemos / App / Activity / animation .
Ejemplo:
fuente
super.onResume();
, estaba obteniendo: "android.util.SuperNotCalledException: Activity {com.abc.MyActivity} no llamó a super.onResume ()"Escribió un tutorial para que pueda animar su actividad dentro y fuera,
Disfrutar:
http://blog.blundellapps.com/animate-an-activity/
fuente
Jelly Bean agrega soporte para esto con el método ActivityOptions.makeCustomAnimation () . Por supuesto, dado que solo está en Jelly Bean, es prácticamente inútil para fines prácticos.
fuente
ActivityOptionsCompat
si tiene como objetivo pre-JellyBean.