2010-06-21 40 views
28

Tengo un widget que inicia una actividad cuando se hace clic en ella. Me gustaría tener algún tipo de animación de lujo para mostrar esta actividad, en lugar del desplazamiento de la derecha estándar de Android. Sin embargo, tengo problemas para configurarlo. Esto es lo que tengo:Mostrar actividad con animación personalizada

slide_top_to_bottom.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> 
    <translate android:fromYDelta="-100%" android:toXDelta="0" android:duration="100" /> 
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="50" /> 
</set> 

... que se hace referencia en anim.xml

<?xml version="1.0" encoding="utf-8"?> 
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" 
     android:delay="50%" 
     android:animation="@anim/slide_top_to_bottom" /> 

Pero entonces ¿por dónde hacer referencia a ella desde? He intentado tanto el elemento base de la actividad Quiero deslizarse en, y la entrada de la activitiy en el manifiesto, en ambas ocasiones con

android:layoutAnimation="@+anim/anim" 

que podría estar haciendo todo mal. ¡Cualquier ayuda es muy apreciada!

Respuesta

51

Se puede crear un tema personalizado con una referencia a su propia animación y aplicarlo a su actividad en el archivo de manifiesto. Tuve éxito aplicando una animación personalizada para una ventana flotante usando la siguiente definición de estilo. Es posible que pueda hacer algo similar si configura el elemento principal de su estilo como "@android: style/Animation.Activity"

Mire los siguientes archivos para obtener más detalles sobre lo que puede anular.

https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/themes.xml

Aquí está mi una parte de mi styles.xml y manifest.xml

styles.xml

Manifest.xml

<activity 
     android:name="com.me.activity.MyActivity" 
     android:label="@string/display_name" 
     android:theme="@style/MyTheme"> 
    </activity> 
+0

¡Gracias, esto hizo mi día! El '