ventana tipos studio personalizado emergente ejemplo edittext dialogos dialogo custom cuadro con android animation dialog alert

studio - tipos de dialogos android



Anima un cuadro de diálogo personalizado (4)

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

  1. Dentro de res / style.xml

    <style name="AppTheme" parent="android:Theme.Light" /> <style name="PauseDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowAnimationStyle">@style/PauseDialogAnimation</item> </style> <style name="PauseDialogAnimation"> <item name="android:windowEnterAnimation">@anim/fadein</item> <item name="android:windowExitAnimation">@anim/fadeout</item> </style>

  2. Dentro de anim / fadein.xml

    <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />

  3. Dentro de anim / fadeut.xml

    <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/anticipate_interpolator" android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />

  4. Actividad principal

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

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:

<?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>


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 .

<?xml version="1.0" encoding="utf-8"?> <resources> <style name="PauseDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowAnimationStyle">@style/PauseDialogAnimation</item> </style> <style name="PauseDialogAnimation"> <item name="android:windowEnterAnimation">@anim/spin_in</item> <item name="android:windowExitAnimation">@android:anim/slide_out_right</item> </style> </resources>

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;


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));


De derecha a izquierda (animación de entrada) y de izquierda a derecha (animación de salida):

styles.xml:

<style name="CustomDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowAnimationStyle">@style/CustomDialogAnimation</item> </style> <style name="CustomDialogAnimation"> <item name="android:windowEnterAnimation">@anim/translate_left_side</item> <item name="android:windowExitAnimation">@anim/translate_right_side</item> </style>

Crea dos archivos en res / anim /:

translate_right_side.xml:

<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0%" android:toXDelta="100%" android:fromYDelta="0%" android:toYDelta="0%" android:duration="600"/>

translate_left_side.xml:

<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="600" android:fromXDelta="100%" android:toXDelta="0%"/>

En ti Fragmento / Actividad:

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