RelativeLayout hace que la animación no funcione?

Tengo una actividad cuya presentación sólo contiene un VideoView. Aquí está el xml:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <VideoView android:id="@+id/videoplayer" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentRight="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_alignParentBottom="true" > </VideoView> 

Estoy tratando de aplicar esta animación a la VideoView después de que deja de jugar:

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0%" android:toYDelta="-100%" android:duration="500"/> <scale android:fromXScale="1.0" android:toXScale="0" android:fromYScale="1.0" android:toYScale="0" android:duration="500" android:pivotX="50%" android:pivotY="0%" /> </set> 

Esto funciona perfectamente como se muestra. Pero si cambio de LinearLayout a RelativeLayout en el diseño, la animación ya no funciona y el video se congela en el último fotograma que se muestra antes de que se detenga.

¿Por qué el tipo de diseño raíz en mi actividad hace que una animación no funcione correctamente?

EDIT: Para añadir a la rareza si agrego este TextView

 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" "> </TextView> 

Al RelativeLayout debajo de VideoView, la animación funcionará. Sin embargo si tomo el espacio fuera del android: el elemento del texto de esto entonces está de nuevo a no trabajar. Oo

EDIT: He concedido la recompensa a Beowulf Bjornson por la buena punta de usar el nuevo marco de animación.

Pero todavía estoy muy interesado si alguien alguna vez se da cuenta de lo que está pasando con las animaciones de estilo antiguo en esta situación estaría más que feliz de lanzar algunos puntos más para ello.

No estoy seguro si el uso de una biblioteca de terceros es una solución viable para usted, pero recomiendo encarecidamente NineOldAndroids, por lo que puede utilizar las capacidades de animación de 3.0+ en versiones anteriores de Android. Hacen que este trabajo sea más fácil.

Aquí está el enlace: http://nineoldandroids.com/

Entonces, en su actividad usted puede hacer algo tan fácil como:

 VideoView view = (VideoView) findViewById(R.id.videoplayer); animate(view).scaleX(0).scaleY(0).setDuration(500L); 

Lo he probado utilizando RelativeLayout y funciona como se esperaba.

EDIT: Si desea utilizar la implementación nativa de nido de abeja, esta API específica es 3.1+ y debe utilizarse de forma nativa como la siguiente:

 view.animate().scaleX(0).scaleY(0).setDuration(500L); 

Y si quieres soporte nativelly 3.0, tendrás que usarlo así:

 AnimatorSet set = new AnimatorSet(); set.playTogether( ObjectAnimator.ofFloat(view, "scaleX", 1.0f, 0.0f), ObjectAnimator.ofFloat(view, "scaleY", 1.0f, 0.0f), ); set.setDuration(500).start(); 

No estoy seguro, pero en mi aplicación tengo RelativeLayout y Animaion y también el vídeo funciona bien.

Si VideoView es la única vista del diseño, ponga la altura relativeLayout y Width como fill_parent y también para el VideoView y luego intente.

Espero que funcione. Si no, entonces hágamelo saber.

  • Alineación de fragmentos con RelativeLayout
  • Android: rendimiento lento con una gran imagen en ImageView
  • Android: layout_centerInParent no funciona
  • Animate RelativeLayout cambio de margen
  • Match_parent propiedad para los niños en un RelativeLayout
  • Anula la onMeasure () de RelativeLayout para restringir su relación de aspecto
  • Agregar dinámicamente vista a la parte inferior de RelativeLayout
  • Android - Dos botones en la misma línea que llenan todo el ancho
  • OnClickListener no funciona con el atributo que se puede hacer clic
  • Cómo inflar RelativeLayout de XML
  • Diseño de Android - RelativeLayout (color de fondo)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.