Estoy tratando de que aparezca un cuadro de diálogo personalizado como si se deslizara hacia abajo desde una vista de texto. es posible? Parece que no puedo aplicar ninguna animación a la clase de diálogo. Probé esta línea en el constructor, pero no tiene ningún efecto:
this.getWindow (). setWindowAnimations (R.anim.paranimation);
Ni siquiera estoy seguro de si la animación es correcta, pero podré ajustarla una vez que vea lo que está haciendo. Lo enumeraré a continuación en aras de la integridad. No busco ayuda sobre la animación real, solo la aplicación al diálogo.
paranimation.xml:
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-200%"
android:toXDelta="0%"
android:fromYDelta="200%"
android:toYDelta="0%"
android:duration="3000"
android:zAdjustment="top">
</translate>
Respuestas:
Hoy he estado luchando con la animación de diálogo, finalmente lo hice funcionar usando estilos, así que aquí hay un ejemplo.
Para empezar, lo más importante: probablemente lo hice funcionar de 5 maneras diferentes hoy, pero no podía decirlo porque ... Si la configuración de animación de su dispositivo está configurada en "Sin animaciones" (Configuración → Pantalla → Animación), entonces los diálogos ganaron. ¡No te animes, no importa lo que hagas!
La siguiente es una versión simplificada de mi styles.xml. Con suerte, se explica por sí mismo. Este debe estar ubicado en
res/values
.El
windowEnterAnimation
es uno de mis animaciones y se encuentra enres\anim
. ElwindowExitAnimation
es una de las animaciones que es parte del SDK de Android.Luego, cuando creo el Diálogo en mi
onCreateDialog(int id)
método de actividades , hago lo siguiente.Alternativamente, puede configurar las animaciones de la siguiente manera en lugar de usar el constructor Dialog que toma un tema.
fuente
Dialog dialog = new Dialog(this, R.style.PauseDialog);
es para API 11 pero esto es generalDialog dialog = new Dialog(Context context);
He creado la animación Fade in y Fade Out para Dialogbox usando el código ChrisJD.
Dentro de res / style.xml
Dentro de anim / fadein.xml
Dentro de anim / fadeout.xml
Actividad principal
fuente
De derecha a izquierda (animación de entrada) y de izquierda a derecha (animación de salida):
styles.xml:
Crea dos archivos en res / anim /:
translate_right_side.xml:
translate_left_side.xml:
En tu Fragmento / Actividad:
fuente
Me encuentro con el mismo problema, pero, por fin, resuelvo el problema de la siguiente manera
fuente
Primero, debe crear dos recursos de animación en res / anim dir
slide_up.xml
slide_bottom.xml
entonces tienes que crear un estilo
y agrega esta línea a tu clase
Basado en http://www.devexchanges.info/2015/10/showing-dialog-with-animation-in-android.html
fuente
Pruebe el siguiente código:
Cree la animación personalizada: res / anim / customer_anim.xml:
fuente