Anima un cuadro de diálogo personalizado

Intento 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. He intentado 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. Voy a enumerarlo a continuación por el bien de la integridad. No busco ayuda sobre la animación real, solo la aplicación al diálogo.

paranimation.xml:

   

He estado luchando con la animación Dialog hoy, finalmente lo he trabajado usando estilos, así que aquí hay un ejemplo.

Para empezar, lo más importante – Probablemente lo haya hecho funcionar de 5 maneras diferentes hoy pero no pude decirlo porque … Si la configuración de animación de su dispositivo está configurada en “Sin animación” (Configuración → Pantalla → Animación), entonces ganaron los cuadros de diálogo no seas animado sin importar lo que hagas!

La siguiente es una versión simplificada de mi styles.xml. Con suerte, se explica por sí mismo. Esto debe estar ubicado en res/values .

      

windowEnterAnimation es una de mis animaciones y se encuentra en res\anim . La windowExitAnimation es una de las animaciones que forma parte del SDK de Android.

Luego, cuando creo el diálogo en mi onCreateDialog(int id) activities onCreateDialog(int id) , hago lo siguiente.

 Dialog dialog = new Dialog(this, R.style.PauseDialog); // Setting the title and layout for the dialog dialog.setTitle(R.string.pause_menu_label); dialog.setContentView(R.layout.pause_menu); 

Alternativamente, puede configurar las animaciones de la siguiente manera en lugar de usar el constructor de diálogo que toma un tema.

 Dialog dialog = new Dialog(this); dialog.getWindow().getAttributes().windowAnimations = R.style.PauseDialogAnimation; 

Creé las animaciones Fade Out y Fade Out para Dialogbox usando el código ChrisJD.

  1. Dentro de res / style.xml

        

  2. Dentro de anim / fadein.xml

      
  3. Dentro de anim / fadeut.xml

      
  4. Actividad principal

     Dialog imageDiaglog= new Dialog(MainActivity.this,R.style.PauseDialog); 

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 ti Fragmento / Actividad:

 Dialog dialog = new Dialog(getActivity(), R.style.CustomDialog); 

Me encuentro con el mismo problema, pero, al final, resuelvo el problema siguiendo el camino

 ((ViewGroup)dialog.getWindow().getDecorView()) .getChildAt(0).startAnimation(AnimationUtils.loadAnimation( context,android.R.anim.slide_in_left)); 
    Intereting Posts