una transiciones que power poner insertar hacer entrada efectos diapositivas diapositiva descargar con como animaciones animacion android animation android-activity

android - transiciones - ¿Cómo puedo agregar una animación al final de la actividad()?



efectos de entrada en power point (9)

Anulo la transición pendiente justo después de llamar a finish ();

En mi caso, lo hice para evitar transiciones.

finish(); Details.this.overridePendingTransition(R.anim.nothing,R.anim.nothing);

El orden es importante :)

Estoy usando overridePendingTransition para cuando se crea mi actividad y eso funciona bien. Puedo ver que el fundido funciona muy bien, pero cuando intento animar el final de la actividad, sigo haciendo la diapositiva predeterminada de derecha a izquierda.

Primero intenté definir la animación de salida cuando comencé la actividad de la siguiente manera:

Intent myIntent = new Intent(a, SkdyAlert.class); myIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); a.startActivity(myIntent); if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) { AnimationHelper.overridePendingTransition(a, R.anim.fadein, R.anim.fadeout); }

Luego traté de hacerlo cuando termine la actividad también

okBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) { finish(); if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) { AnimationHelper.overridePendingTransition(activity, 0, R.anim.fadeout); } } });

Pero ninguno de estos enfoques evitará que la diapositiva de "derecha a izquierda" se desplace. ¿Alguna idea sobre lo que estoy haciendo mal?


Busca hacerlo a través de un tema. Puede definir ingresar animaciones de salida para actividades o toda la aplicación


Esta pregunta ya ha respondido, pero la forma más eficiente de poner una animación al salir de una actividad es anulando el método "finish ()" de la actividad relacionada:

@Override public void finish() { super.finish(); overridePendingTransition(R.anim.hold, R.anim.slide_out_bottom); }


Siguiendo la respuesta de @schwiz, aquí hay una anulación de animación para el tema Dialog incorporado, donde he definido las animaciones locales slide_up y slide_down. Mi actividad especifica el tema MyDialog para tener estas transiciones dentro y fuera.

<style name="Animation.MyDialog" parent="android:Animation.Dialog"> <item name="android:windowEnterAnimation">@anim/slide_up</item> <item name="android:windowExitAnimation">@anim/slide_down</item> </style> <style name="Theme.MyDialog" parent="android:Theme.Dialog"> <item name="android:windowAnimationStyle">@style/Animation.MyDialog</item> </style>


Solucioné este problema usando este tipo de enfoque:

para abrir con animación:

Intent newUser = new Intent(getBaseContext(), NewUserActivity.class); startActivity(newUser); overridePendingTransition(R.anim.slide_in_right,R.anim.slide_out_left);

Para cerrar con animación:

@Override public boolean onOptionsItemSelected(MenuItem item) { onBackPressed(); return super.onOptionsItemSelected(item); } @Override public void onBackPressed() { super.onBackPressed(); overridePendingTransition(R.anim.slide_out_right,R.anim.slide_in_right); }


Sugeriría usar el método isFinishing () para configurar las animaciones en onPause en lugar de llamar a finish ()

@Override protected void onPause() { super.onPause(); if (isFinishing()){ overridePendingTransition(R.anim.activity_slide_in, R.anim.activity_slide_out); } }


Use startActivityForResult para iniciar su actividad secundaria y en onActivityResult () de su actividad principal:

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode==REQUEST_YOUR_ACTIVITY) { overridePendingTransition(R.anim.parent_appearing_anim, R.anim.child_dissmissing_anim); } super.onActivityResult(requestCode, resultCode, arg2); }


finish(); overridePendingTransition(0, 0);


if (getEnterAnimation() > -1 && getExitAnimation() > -1) { overridePendingTransition(getEnterAnimation(), getExitAnimation()); }

donde estos métodos devuelven animaciones de R.anim.YOUR_ANIMATION_XML

agregue este código en su onCreate () antes

setContentView()

y en su OnPause () antes

super.onPause()

intenté agregar este código antes / dentro de estos métodos pero la animación de salida nunca funcionó

startActivity() finish() onBackPressed()