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

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

   //Time in milliseconds  

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

    

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.

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); 

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

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

Ejemplo de implementación:

   

Usar overridePendingTransition

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

fadein.xml

     

fadeout.xml

     

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.

Si siempre quieres la misma animación de transición para la actividad

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); @Override protected void onPause() { super.onPause(); if (isFinishing()) { overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); } }