with transiciones studio start fragments entre diseño developer animaciones activity activities android animation fade transition

start - transiciones material design android studio



¿Puedo cambiar la animación de transición de Android startActivity()? (6)

A partir del nivel 5 de la API, puede invocar la anulación de Transición inmediata de inmediato para especificar una animación de transición explícita:

startActivity(); overridePendingTransition(R.anim.hold, R.anim.fade_in);

o

finish(); overridePendingTransition(R.anim.hold, R.anim.fade_out);

Estoy comenzando una actividad y preferiría tener un fade-in alfa para startActivity() y un fade-out para el finish() . ¿Cómo puedo hacer esto en el SDK de Android?


En la misma instrucción en la que ejecutas finish (), ejecuta tu animación allí también. Luego, en la nueva actividad, ejecuta otra animación. Vea este código:

fadein.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true"> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500"/> //Time in milliseconds </set>

En tu clase de finalización

private void finishTask() { if(blabbla==blablabla){ finish(); runFadeAnimation(); } } private void runFadeInAnimation() { Animation a = AnimationUtils.loadAnimation(this, R.anim.fadein); a.reset(); LinearLayout ll = (LinearLayout) findViewById(R.id.yourviewhere); ll.clearAnimation(); ll.startAnimation(a); }

fadeout.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true"> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500"/> </set>

En tu nueva clase de actividad, creas un método similar al runFadeAnimation que escribí y luego lo ejecutas en crear y no olvides cambiar la identificación de recursos a fadeout.


Para fadeIn y fadeOut , solo agréguelo después de super.onCreate (savedInstanceState) en su nueva clase de actividad. No es necesario crear algo más (sin XML, sin carpeta anim, sin función adicional).

overridePendingTransition(R.anim.abc_fade_in,R.anim.abc_fade_out);


Simplemente puede crear un contexto y hacer algo como a continuación:

private Context context = this;

Y tu animación: -

((Activity) context).overridePendingTransition(R.anim.abc_slide_in_bottom,R.anim.abc_slide_out_bottom);

Puedes usar cualquier animación que desees.


Usar overridePendingTransition

startActivity(); overridePendingTransition(R.anim.fadein, R.anim.fadeout);

fadein.xml

<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <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" /> </set>

fadeout.xml

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


Ver temas en android: http://developer.android.com/guide/topics/ui/themes.html .

En themes.xml debe haber android:windowAnimationStyle donde puede ver la declaración del estilo en styles.xml .

Ejemplo de implementación:

<style name="AppTheme" parent="..."> ... <item name="android:windowAnimationStyle">@style/WindowAnimationStyle</item> </style> <style name="WindowAnimationStyle"> <item name="android:windowEnterAnimation">@android:anim/fade_in</item> <item name="android:windowExitAnimation">@android:anim/fade_out</item> </style>