2010-04-12 19 views
37

Estoy intentando iniciar una actividad con una animación de transición personalizada. La única forma que he encontrado hasta ahora para hacer esto (sin usar onPendingTransition() en la actividad anterior) es usar un tema personalizado en la actividad y definir activityOpenEnterAnimation, taskOpenEnterAnimation, windowEnterAnimation o windowAnimationStyle para establecer la animación. Pero ninguno de estos atributos me funciona. Un poco de experimentación en los resultados se desprende la siguienteActividad de inicio con una animación

Si fijo el atributo windowAnimationStyle hasta cierto estilo personalizado que define valores para activityOpenEnterAnimation, taskOpenEnterAnimation, windowEnterAnimation o windowAnimationStyle puedo librarme de la animación de transición por defecto que ocurre en el inicio de la actividad. No muestra la animación de transición utilizando el valor real especificado, pero al menos no se muestra la animación predeterminada.

De acuerdo con el documento de referencia here,

que debería ser capaz de definir una animación en el inicio de la actividad utilizando activityOpenEnterAnimation. Pero no hay éxito hasta el momento.

¿Alguna idea?

+0

Esta pregunta fue hecha para ** Android 2.1 (Eclair) **. No sé si el problema también surge o es relevante para las versiones posteriores, a saber, Froyo/Honeycomb. No tengo forma de descubrirlo. – adityad

Respuesta

78

Estoy usando esto en un proyecto mío actual, es básicamente bastante simple. Se define un nuevo estilo de animación en su styles.xml, así:

<!-- just defines top layer "Animation" --> 
<style name="Animation" /> 

<!-- the animations must have been defined in your "anim" folder, of course --> 
<style name="Animation.MyAwesomeAnimation" parent="android:style/Animation.Activity"> 
    <item name="android:activityOpenEnterAnimation">@anim/myawesomeanimation_enter</item> 
    <item name="android:activityOpenExitAnimation">@anim/hold_long</item> 
    <item name="android:activityCloseEnterAnimation">@anim/hold_long</item> 
    <item name="android:activityCloseExitAnimation">@anim/myawesomeanimation_exit</item> 
</style> 

asentando después este estilo en un tema (themes.xml):

<style name="Theme.MyAwesomeTheme" parent="Theme.Default"> 
    <item name="android:windowAnimationStyle">@style/Animation.MyAwesomeAnimation</item> 
</style> 

Y a continuación, sólo tiene que establecer estos temas a cada actividad que le guste en su AndroidManifest.xml:

<activity 
    android:name=".MyAwesomeActivity" 
    android:theme="@style/Theme.MyAwesomeTheme" /> 

Ahora les deseo una gran diversión con animaciones de actividad! :-D

+25

Después de 4 horas de experimentación ¡tengo una gran información para todos !: ¡Es realmente importante activar las animaciones para su teléfono: Configuración-> Pantalla-> Animación y seleccione "todas las animaciones"! – Informatic0re

+24

En mi experiencia, uno también debería derivar de las animaciones predeterminadas: '