android - example - Transición de animación entre actividades usando FLAG_ACTIVITY_CLEAR_TOP
transition layout android (4)
En mi aplicación de Android, estoy creando un método que muestre todas las actividades y muestre la primera actividad.
Yo uso este código:
Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
this.startActivity(intent);
Como noté que la transición todavía era una animación de izquierda a derecha, ¿alguien sabe si hay una manera de cambiar la animación del sistema al iniciar una actividad?
En realidad, idealmente me gustaría tener una transición de derecha a izquierda (como cuando se toca el botón de retorno)
¡gracias por la ayuda!
CoolMcGrr está en lo cierto, quiere usar overridePendingTransition(int enterAnim, int exitAnim)
.
Para obtener específicamente la transición estándar de "botón de retroceso", los utilizo como las transiciones enterAnim
y exitAnim
:
push_right_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="@android:integer/config_shortAnimTime"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_shortAnimTime" />
</set>
push_right_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="@android:integer/config_shortAnimTime"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_shortAnimTime" />
</set>
Deberías echarle un vistazo Activity.overridePendingTransition() .
Por supuesto, esto requiere que ejecute al menos la versión 2.0 del SDK.
El problema ocurre hoy en día porque pre-ICS e ICS tienen diferentes transiciones de actividad integradas. Esto es mucho más limpio que definir tu propia animación e independiente del SDK:
Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NO_ANIMATION);
this.startActivity(intent);
finish();
Esto iniciará la actividad (no visible aún) y reproducirá la transición de "actividad finalizada" a la nueva actividad.
Usé este código:
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
Puede ver estos ejemplos en GmailAnimation o LopeAnimations . También puedes ver más en este Blog .