viewpager studio android user-interface android-activity screen android-sliding

studio - Nueva actividad en Android "enter from the side"



slide android studio (5)

En Android OS 2.1 o posterior, creo que puedes usar el método OverridePendingTransition () para proporcionar el tipo de transición entre las animaciones de actividades que estás buscando.

En primer lugar, defina un par de recursos de animación en / res / anim / . Aquí hay 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>

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>

Luego, cuando inicie la nueva actividad, use 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 la actividad.

Por el contrario, cuando esa actividad finaliza y vuelves a la original, es un poco más neblinosa.

Si tiene algún control de IU que finaliza esa actividad y llama a Activity.finish (), entonces puede agregar el overridePendingTransition () inmediatamente después de eso.

Para manejar el caso donde el usuario finaliza la actividad presionando 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); }

¿Cuál es la mejor manera de ir a una actividad nueva pero hacer que parezca que la actividad se desliza hacia la izquierda y la nueva actividad ingresa a la pantalla? Estoy usando intenciones para llamar a la nueva actividad, ¿es esa la manera de hacerlo si quiero que la aplicación sea liviana?

Para explicar un poco mejor: en mi teléfono Android puedo deslizar la vista con el menú de inicio a la derecha y luego ingresa un flujo de amigos desde la izquierda y se lleva a cabo en la pantalla. Quiero hacerlo en mi aplicación con los botones, es el "deslizamiento" que estoy buscando. ¡Gracias!


Existe cierta confusión acerca de las animaciones de entrada y salida. Para aquellos que todavía están reflexionando sobre esto, aquí hay una plantilla ...

overridePendingTransition( enterAnimationForCalledActivity, exitAnimationForCallingActivity );

Esto probablemente debería despejar el aire un poco.


Jems es correcto. De forma predeterminada, obtendrá una animación deslizante al lanzar un nuevo intento.

Si está buscando una animación más personalizada, puede usar la overridePendingTransition . Tenga en cuenta que se agregó en API Nivel 5. Consulte esta demostración de API para el uso de muestras.


Puedes usar left_slide_out.xml (simplemente cambia el to a toDelta en Josh''s right_slide_out.xml para leer -100% p), para hacer que la actividad anterior desaparezca a la izquierda (y también tenga la misma duración en ambas animaciones).


Sí, usar intents es la manera estándar de comenzar otra actividad, y generalmente hace lo deslizante que mencionas. por ejemplo, startActivity (new Intent (this, myNextActivity.class)); lo haré.