Utilizar un ValueAnimator para hacer que un TextView parpadee diferentes colores

Quiero usar un ValueAnimator para hacer que el color de texto de un TextView parpadee dos veces entre dos colores diferentes, pero quiero crear la Animación en XML. No puedo encontrar ejemplos. Cualquier ayuda será apreciada.

Actualizar

El código abajo funciona perfecto. El color cambia de negro a azul, azul a negro, negro a azul, y azul a negro con 500ms entre cada repetición inversa. Sin embargo, estoy tratando de conseguir que esto funcione desde un archivo xml animador.

 ValueAnimator colorAnim = ObjectAnimator.OfInt(objectToFlash, "textColor", (int)fromColor, (int)toColor); colorAnim.SetDuration(500); colorAnim.SetEvaluator(new ArgbEvaluator()); colorAnim.RepeatCount = 3; colorAnim.RepeatMode = ValueAnimatorRepeatMode.Reverse; 

Xml

 <objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="textColor" android:duration="500" android:valueFrom="@color/black" android:valueTo="@color/ei_blue" android:repeatCount="3" android:repeatMode="reverse" /> 

Código

 ValueAnimator anim = (ObjectAnimator)AnimatorInflater.LoadAnimator(Activity, Resource.Animator.blinking_text); anim.SetTarget(objectToFlash); 

El uso de xml hace que el color del color de texto de TextView cambie tantas veces como sea posible dentro de 500ms.

Actualización Creo que lo que necesito son Keyframes para imitar en xml lo que la llamada OfInt está haciendo de forma programática. Tratando esto ahora, pero no hay suerte hasta ahora.

Prueba esto:

 private static final int RED = 0xffFF8080; private static final int BLUE = 0xff8080FF; ValueAnimator colorAnim = ObjectAnimator.ofInt(myTextView, "backgroundColor", RED, BLUE); colorAnim.setDuration(3000); colorAnim.setEvaluator(new ArgbEvaluator()); colorAnim.setRepeatCount(ValueAnimator.INFINITE); colorAnim.setRepeatMode(ValueAnimator.REVERSE); colorAnim.start(); 

O pruebe este método no comprobado a través de xml: * res / animator / property_animator.xml *

 <set > <objectAnimator android:propertyName="backgroundColor" android:duration="3000" android:valueFrom="#FFFF8080" android:valueTo="#FF8080FF" android:repeatCount="-1" android:repeatMode="reverse" /> </set> 

Ahora en código Java:

 AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext, R.anim.property_animator); set.setTarget(myTextView); set.start(); 

El problema que describe es que el animador de objetos especificado en XML no está asignando correctamente el ArgbEvaluator para la interpolación de color.

Para resolver el problema, cree el animador de objetos XML para interponer entre los colores que desee. A continuación, en el código fuente, haga lo siguiente asegurándose de que el evaluador utilizado por el animador es un ArgbEvaluator:

 ObjectAnimator colorAnimator = (ObjectAnimator)AnimatorInflater.loadAnimator(this, R.animator.color_rotation); colorAnimator.setTarget(objectToFlash); colorAnimator.setEvaluator(new ArgbEvaluator()); colorAnimator.start(); 

A partir de API LEVEL> 21 el mismo efecto se puede hacer con el método estático ObjectAnimator.ofArgb así:

 @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) private void animateText(TextView text) { ObjectAnimator animator = ObjectAnimator.ofArgb(text, "textColor", Color.WHITE, Color.RED); animator.setDuration(500); animator.setRepeatCount(3); animator.setRepeatMode(ValueAnimator.REVERSE); animator.start(); } 
  • Desarrollo de la aplicación C # móvil para ejecutarse en múltiples plataformas
  • Cómo persistir Button.Pressed estado en Xamarin.Android?
  • Cómo MvvmCross enlazar drawableId a Imageview
  • Appcompat-v7: 21.0.0 ': No se encontró ningún recurso que coincida con el nombre dado: attr' android: actionModeShareDrawable '
  • Manera correcta de almacenar la clave de cifrado para la base de datos SqlCipher
  • MonoDroid VS Java en el desarrollo de Android?
  • Símbolo no encontrado en OnActionExpandListener
  • Registrar ContentObserver en Application.OnCreate () Servicio VS
  • AngularJS no funciona en Xamarin Android Webview
  • Circular ImageView en Xamarin
  • Xamarin ZipAlign no encontrado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.