Animaciones explícitas para setAnimationStyle (), ¿cuáles son mis opciones?

Me gustaría probar diferentes estilos de animación para una ventana emergente usando setAnimationStyle (), pero estoy luchando por entender la documentación.

Developer.android.com, dice: "estilo de animación para usar cuando la ventana emergente aparece y desaparece. Establezca a -1 para la animación predeterminada, 0 para ninguna animación o un identificador de recurso para una animación explícita."

No da ningún ejemplo, ni me dice qué opciones de recursos están disponibles. Sospecho que la mejor animación para mis propósitos se deslizará desde la derecha … ¿existe como una opción? ¿Son estas cosas que puedo seleccionar de una lista o tengo que de alguna manera crear mi propia?

EDIT: Mi código actual para hacer mi ventana emergente es algo como esto (simplificado):

public void completed_dialog() { runOnUiThread(new Runnable() { public void run() { View layout = inflater.inflate(R.layout.endofgame, null, false); Button b1 = (Button) layout.findViewById(R.id.pu_menu); Button b2 = (Button) layout.findViewById(R.id.pu_repeat); Button b3 = (Button) layout.findViewById(R.id.pu_next); b1.setBackgroundResource(R.drawable.custom_menu_but); b2.setBackgroundResource(R.drawable.custom_repeat_but); b3.setBackgroundResource(R.drawable.custom_next_but); b1.setOnClickListener(menu_button_click_listener); b2.setOnClickListener(repeat_button_click_listener); b3.setOnClickListener(next_button_click_listener); final PopupWindow pw = new PopupWindow(layout, canvas_width, canvas_width /2, true); pw.setAnimationStyle(android.R.style.Animation_Dialog); pw.showAtLocation(game_frame_layout, Gravity.CENTER, 0, 0); } } } 

Ahora he puesto lo siguiente en un archivo res / anim / test.xml:

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:fromXScale="0.3" android:toXScale="1.0" android:fromYScale="0.3" android:toYScale="1.0" android:pivotX="0%" android:pivotY="0%" android:duration="@android:integer/config_shortAnimTime" /> <alpha android:interpolator="@android:anim/decelerate_interpolator" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_shortAnimTime" /> </set> 

El código original con pw.setAnimationStyle (android.R.style.Animation_Dialog); Funcionó bien, en la medida en que el diálogo apareció con la animación estándar – pero si cambié esa línea con pw.setAnimationStyle (R.anim.test); No hay animación. No tengo ni idea de porqué.

2 Solutions collect form web for “Animaciones explícitas para setAnimationStyle (), ¿cuáles son mis opciones?”

Esto es un ejemplo de trabajo de setAnimationStyle() en mi final:

Res / anim / in.xml :

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator"> <translate android:fromYDelta="854" android:toYDelta="0" android:duration="1000"/> </set> 

Res / anim / out.xml :

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:interpolator="@android:anim/decelerate_interpolator" android:fromYDelta="0" android:toYDelta="854" android:duration="10000" /> </set> 

Layout / main.xml :

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/layout" > <Button android:id="@+id/btn_show" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="show" /> </RelativeLayout > 

Layout / popup.xml :

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#cccccc" > <Button android:id="@+id/btn_dismiss" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="dismiss"/> </LinearLayout> 

Values ​​/ styles.xml:

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="PopupAnimation" parent="android:Animation" mce_bogus="1"> <item name="android:windowEnterAnimation">@anim/in</item> <item name="android:windowExitAnimation">@anim/out</item> </style> </resources> 

Values ​​/ strings.xml:

 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, MainActivity!</string> <string name="app_name">Popupwindow</string> </resources> 

MainActivity.java :

 public class MainActivity extends Activity { /** Called when the activity is first created. */ boolean flag =false; PopupWindow popupWindow; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } public void init() { Button btn_show = (Button) findViewById(R.id.btn_show); LayoutInflater inflater = LayoutInflater.from(this); View layout = inflater.inflate(R.layout.popup, null); popupWindow =new PopupWindow(layout, LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); Button btn_dismiss = (Button) layout.findViewById(R.id.btn_dismiss); btn_dismiss.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub openMenu(); } }); btn_show.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub openMenu(); } }); } public void btn_showOnClicked() { openMenu(); } public void btn_dismissOnClicked() { openMenu(); } public void openMenu() { if (!flag) { popupWindow.setAnimationStyle(R.style.PopupAnimation); popupWindow.showAtLocation(findViewById(R.id.btn_show), Gravity.NO_GRAVITY, 0, 0); popupWindow.setFocusable(true); popupWindow.update(); flag =true; } else { popupWindow.dismiss(); popupWindow.setFocusable(false); flag =false; } } } 

Y en su código simplemente añada su archivo anim al estilo como:

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="test" parent="android:Animation" mce_bogus="1"> <item name="android:windowEnterAnimation">@anim/test</item> </style> </resources> 

Y en código:

 pw.setAnimationStyle(android.R.style.test); 

¡Gracias y codificación feliz !!!

Puede ver las opciones en la documentación de R.style . Pero no hay muchos sin embargo. Si desea más que eso, tendrá que crearlo usted mismo. Vea la guía básica aquí .

Algunos ejemplos más de animaciones personalizadas que puede encontrar en el sitio de código simple de quickactions google .

Según tu comentario, creo que deberías especificar el id de tu estilo como R.style.Animation_test .

  • Cómo deshabilitar la reproducción de fondo de vídeo al salir de la aplicación Córdoba android
  • No mostrar MotionEvent.ACTION_UP o MotionEvent.ACTION_CANCEL
  • Your.package.namespace - ¿a qué se debe cambiar?
  • ¿Qué hay de malo en esta cadena de formato?
  • Selector de color de Android para incluirlo en la actividad
  • La notificación de Cordova plugin (java) no va a app - android
  • HttpClient se detiene durante largos períodos de tiempo, incluso con parámetros de tiempo de espera establecidos
  • CharSequence to int
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.