ObjectAnimator vs TranslateAnimation

Simplemente hago un proyecto sencillo en el que intento mostrar u ocultar un diseño en la parte superior de un LinearLayout con TranslateAnimation. Hubo un parpadeo porque cuando llamo onAnimationEnd (), la animación no fue terminada por 0.1sec.

Ejemplo:

@Override public void onAnimationEnd(Animation animation) { retractableLayout.setVisibility(View.GONE); } 

Cuando busco en stackoverflow, he encontrado que hay otra manera de hacerlo. Con ObjectAnimator. Después de usarlo, mi animación estaba bien sin una View.GONE

¿Cuál es la diferencia entre TranslateAnimation y ObjectAnimator? Es uno de ellos es obsoleto y hacen lo mismo o hay un momento en que uno o el otro es mejor.

Aquí hay un reporte de github con las 2 versiones ( https://github.com/charlesvigneault/AAA_Test1 )

Gracias

La diferencia es que si usas TranslateAnimation, la vista que estás animando no deja realmente su posición original en la pantalla, solo hace que parezca que se está moviendo. Así que la vista básicamente no cambia sus coordenadas.

Consulta este video sobre las animaciones de la vista: https://www.youtube.com/watch?v=_UWXqFBF86U

Si utiliza un ObjectAnimator la vista realmente cambia su posición actual.

TranslateAnimation no es obsoleta, todavía se puede encontrar en Lollipop, pero para la mayoría de los casos puedo recomendar una clase llamada ViewPropertyAnimator , que muchas personas aún no parecen saber acerca de, es probablemente la manera más fácil y más directo para animar una vista, Y también puede guardar un montón de código. Heres un ejemplo:

 retractableLayout.animate() .translationX(toX) .translationY(toY) .setDuration(duration) .setInterpolator(interpolator) .setStartDelay(startDelay); 

También puede establecer un oyente, etc., asegúrese de comprobar los métodos disponibles.

Y echa un vistazo a este video realmente útil:

https://www.youtube.com/watch?v=3UbJhmkeSig

TranslateAnimation es depracated desde android 3.0 y ObjectAnimator es el camino a seguir. El animador de objetos es mucho más flexible, ya que le permite "animar" cualquier propiedad de objeto que tenga setter y getter propios implementados. Revise la guía oficial del desarrollador de android http://developer.android.com/guide/topics/graphics/overview.html

  • ¿Cómo detectar si el usuario tiene 3G / Wifi encendido antes de hacer la conexión de la URL?
  • Creación de una base de datos de aplicaciones para Android con gran cantidad de datos
  • ¿Es posible instalar el JDK en un dispositivo android?
  • ¿Alternativa a dex2jar y jd-GUI?
  • Barra de estado transparente: antes de Android 4.4 (KitKat)
  • Android NDK r4 san-angeles problema
  • Android: ¿Cómo estirar una imagen al ancho de la pantalla mientras mantiene la relación de aspecto?
  • Cómo obtener balizas visibles desde el método RegionBootstrap AltBeacon
  • ¿Cuál es la diferencia entre usar JDK 7 vs usar JDK 8 con el nivel de cumplimiento del compilador 1.7?
  • No se puede emitir desde el tipo de origen al tipo de destino (JNIEnv.GetArray <Java.Lang.Object> (pudis.Handle);)
  • Cómo activar la ofuscación de ProGuard en Android Studio?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.