En android OS 2.1 o posterior, creo que puede utilizar el método OverridePendingTransition() para proporcionar el tipo de transición entre las animaciones de actividades que está buscando.
En primer lugar, defina un par de recursos de animación en /res/anim/. Aquí es uno que se llama right_slide_out.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate
android:fromXDelta="0"
android:toXDelta="100%p"
android:duration="500"
/>
</set>
Un otro llamado right_slide_in.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate
android:fromXDelta="100%p"
android:toXDelta="0"
android:duration="700"
/>
</set>
Entonces, cuando usted está comenzando la nueva actividad, utilice el método OverridePendingTransition como en:
startActivity(intent);
overridePendingTransition (R.anim.right_slide_in, R.anim.right_slide_out);
Eso debería manejar las animaciones de transición para comenzar ing la actividad.
Por el contrario, cuando esa actividad finaliza y vuelves a la original, es un poco más nublada.
Si tiene algún control de IU que finaliza esa actividad y llama a Activity.finish(), entonces puede simplemente agregar el overridePendingTransition() inmediatamente después de eso.
Para manejar el caso en que el usuario termina la actividad pulsando el botón atrás, use algo como lo siguiente:
@Override
public void onBackPressed()
{
this.finish();
overridePendingTransition (R.anim.right_slide_in, R.anim.right_slide_out);
}
¡Muchas gracias! Junto con la demostración de la API esto realmente lo hizo. Es fácil de ajustar también. Quiero que mi aplicación "revise" mis actividades como las páginas de un libro, así que esto es un comienzo. Muy bien explicado. – kakka47
Lo hago funcionar, la primera actividad se desliza desde la derecha y la otra actividad se desliza desde la izquierda. Parece que ahora están siempre en la posición Z superior cuando "entran en la pantalla". Quiero que la primera actividad se aleje (fuera de la pantalla) cuando se acerca la otra. Parece que no puedo alcanzarlo ya que el otro está entrando? ¿Puedo hacer una doble anulaciónPendingTransition? ¡Gracias! – kakka47
Dudo que no puedas usar la anulación de la Transición de Pending dos veces para un buen efecto. Si está buscando un efecto de cambio de página, dudo que se pueda hacer con las transiciones de Actividad ya que siempre ejecutan ambas animaciones simultáneamente. Dependiendo de su aplicación, puede considerar no cambiar actividades en absoluto, y en su lugar mantener una actividad y usar múltiples vistas para que pueda animar una vista y la otra, manteniéndolas alineadas para que aparezcan de la manera que desee. Animar vistas es mucho más flexible que lo que puedes controlar con las transiciones de actividad. – mmeyer