Por qué mi animación de actividad cercana no funciona en Android 4.0 (ICS)

Hice un tema con una animación personalizada (diapositiva hacia arriba y deslice hacia abajo). La animación funciona bien en las versiones android más antiguas. Sin embargo, cuando lo pruebo en Android 4.0 (ICS) la animación de cierre no funciona. Sólo la diapositiva de animación funciona bien en ICS.

Aquí está mi tema que utilizo para la animación:

<style name="myTheme" parent="android:Theme.Black"> <item name="android:windowTitleSize">45dip</item> <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item> <item name="android:windowAnimationStyle">@style/myTheme.Window</item> </style> <style name="myTheme.Window" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/push_up_in_no_alpha</item> <item name="android:activityOpenExitAnimation">@anim/no_anim</item> <item name="android:activityCloseEnterAnimation">@anim/no_anim</item> <item name="android:activityCloseExitAnimation">@anim/push_down_out_no_alpha</item> </style> 

Y aquí está push_down_out_no_alpha.xml :

 <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="@android:integer/config_longAnimTime"/> </set> 

Cuando establezco una animación en código también funciona bien en ICS, pero ¿por qué no como un tema?

  this.overridePendingTransition(R.anim.no_anim,R.anim.push_down_out_no_alpha); 

¿Alguien sabe por qué no funciona en Android 4.0 (ICS)?

La especificación de animaciones del manifiesto parece estar roto en ICS 🙁 La solución de animación de override funciona bien, pero es probable que no quieras codificar las animaciones. Sería bueno sacarlas del manifiesto como lo harías para otros versiones de la plataforma .. tan ….

agregue un par de campos de miembro a su actividad para mantener los identificadores de las animaciones asociadas a su actividad.

 protected int activityCloseEnterAnimation; protected int activityCloseExitAnimation; 

y en algún lugar de su onCreate …

 // Retrieve the animations set in the theme applied to this activity in the // manifest.. TypedArray activityStyle = getTheme().obtainStyledAttributes(new int[] {android.R.attr.windowAnimationStyle}); int windowAnimationStyleResId = activityStyle.getResourceId(0, 0); activityStyle.recycle(); // Now retrieve the resource ids of the actual animations used in the animation style pointed to by // the window animation resource id. activityStyle = getTheme().obtainStyledAttributes(windowAnimationStyleResId, new int[] {android.R.attr.activityCloseEnterAnimation, android.R.attr.activityCloseExitAnimation}); activityCloseEnterAnimation = activityStyle.getResourceId(0, 0); activityCloseExitAnimation = activityStyle.getResourceId(1, 0); activityStyle.recycle(); 

entonces dondequiera que su actividad termine / se debe aplicar la animación incluye …

 overridePendingTransition(activityCloseEnterAnimation, activityCloseExitAnimation); 

y sus actividades deben honrar correctamente las animaciones que establezca en el tema / estilo adjunto a las actividades en su manifiesto.

También he intentado pero no funciona aquí. No sé cuál es el problema, pero this.overridePendingTransition(R.anim.no_anim,R.anim.push_down_out_no_alpha); este código funciona bien

  • Cambiar el color azul por defecto en el tema de Android holo a naranja (o cualquier otra cosa)
  • Android :: Cómo cambiar el tema de otro apk mediante programación
  • ¿Cómo setTheme a una actividad en tiempo de ejecución? No funciona llamada setTheme antes onCreate y setContentView
  • Cómo extraer valores de color (#rgb) de un tema de Android?
  • Uso de un tema para la pantalla de preferencias
  • ¿Cómo proporcionar opciones de temas en una aplicación de Android?
  • Cambiar el color de enfoque de un EditText?
  • Estilizar la vista EditarTexto con la forma dibujable para parecer similar al nuevo tema holográfico para Android <3.0
  • No apuntar a las últimas versiones de Android
  • ¿Cómo personalizar el tema de la pantalla de preferencias para que parezca eso?
  • Cambiar el color de la flecha de la barra de acción de forma dinámica
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.