visuales transiciones transicion studio para pantallas navegacion fragments entre efectos diseño developer botones animaciones activities actividades android animation android-intent pending-transition

studio - transiciones entre fragments android



¿Cómo realizar una animación de desvanecimiento en la transición de actividad? (4)

Estoy codificando un efecto de transición entre la actividad de mi logotipo y mi actividad Principal, pero tengo el problema de que antes de desaparecer la actividad vaya a la parte superior:

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false" > <alpha android:duration="2000" android:fromAlpha="0.0" android:toAlpha="1.0" > </alpha> </set>

¿Cómo podría mejorar este código para obtener solo un efecto de desaparición?


Podrías crear tus propios archivos de animación .xml para desvanecer en una nueva Activity y desvanecer la Activity actual:

fade_in.xml

<?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />

fade_out.xml

<?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="1.0" android:toAlpha="0.0" android:fillAfter="true" android:duration="500" />

Úselo en un código como ese: (Dentro de su Actividad)

Intent i = new Intent(this, NewlyStartedActivity.class); startActivity(i); overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

El código anterior desvanecerá la Actividad actualmente activa y se desvanecerá en la Actividad recién iniciada.

ACTUALIZACIÓN: @Dan J señaló que el uso de las animaciones integradas de Android mejora el rendimiento , que de hecho parece ser el caso. Si desea usar las animaciones integradas, use:

overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);

Aviso usando android.R lugar de R


Solo volver a publicar la respuesta por oleynikd porque es simple y ordenado

Bundle bundle = ActivityOptionsCompat.makeCustomAnimation(getContext(), android.R.anim.fade_in, android.R.anim.fade_out).toBundle(); startActivity(intent, bundle);


también puede agregar animaciones en su actividad, en el método Crear como el siguiente por invalidarPendingTransition no funciona con algunos dispositivos móviles, o depende de la configuración del dispositivo ...

View view = findViewById(android.R.id.content); Animation mLoadAnimation = AnimationUtils.loadAnimation(getApplicationContext(), android.R.anim.fade_in); mLoadAnimation.setDuration(2000); view.startAnimation(mLoadAnimation);


también puedes usar este código en tu archivo style.xml para que no necesites escribir nada más en tu actividad.java

<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowAnimationStyle">@style/AppTheme.WindowTransition</item> </style> <!-- Setting window animation --> <style name="AppTheme.WindowTransition"> <item name="android:windowEnterAnimation">@android:anim/fade_in</item> <item name="android:windowExitAnimation">@android:anim/fade_out</item> </style>