Dibuja un personaje con 2 colores en Android

Estoy tratando de lograr una animación de texto karaoke en una Textview. Algo como esto:

Efecto de texto de karaoke

Para que sea suave, quiero encontrar una manera de dibujar un carácter de 2 colores (como s en la imagen).

Encontré este enlace pero el HalfColorSpan no dibujó nada.

¿Hay alguna forma de lograrlo?

P / S: He pensado en LinearGradient, pero este código sólo establece el degradado VERTICALMENTE.

 class HalfColorSpan extends CharacterStyle implements UpdateAppearance { private final static String TAG = "DrawableSpanTest.HalfColorSpan"; @Override public void updateDrawState(TextPaint paint) { paint.setStyle(Paint.Style.FILL); Shader shader = new LinearGradient(0, 0, 0, 80, new int[]{PROCESSED_COLOR, UNPROCESSED_COLOR}, new float[]{0, 1}, Shader.TileMode.CLAMP); paint.setShader(shader); } } 

  • Establecer texto temporal en un EditText / TextView en Android?
  • Obtener id de TextView en Fragmento de FragmentActivity en ViewPager
  • Toque las coordenadas en la vista de texto
  • Establecer el borde y el color de fondo de textView
  • Androide: elipsis en el texto ICS continúa después de la elipsis
  • ¿Puedo establecer un color de texto para los enlaces dentro de una vista de texto?
  • Android: html en textview con el enlace clickable
  • Padding arround textview con fondo de nueve parches no tienen efecto visual
  • El desplazamiento de texto no funciona
  • Cómo establecer programaticamente maxLength en Android TextView?
  • Cómo enlazar Android TextView a evento Click con MvvmCross
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.