Animación de texto de izquierda a derecha como brillo en Android
No sé qué tipo de animación llamó, pero quiero implementarlo como se muestra a continuación. Vi esa animación en iOS.
- Android: anima el alfa de la única ruta en un lienzo
- Android: cómo animar una transición de actividad cuando se pulsa el botón de retroceso predeterminado
- Maneje adecuadamente la animación de DrawerLayout mientras navega a través del fragmento
- Animación con dos interpoladores
- Animar ciertos elementos ListView
Como se puede ver, la diapositiva de oración para cancelar se animará de izquierda a derecha como si hubiera una luz detrás de ella.
No sé qué usar. He intentado alguna animación como Alpha, pero no puedo lograrlo. ¿Alguien puede ayudarme?
- Imagen de animación de fondo en ProgressBar en Android?
- Android cómo configurar windowanimation mediante programación
- Api 21 Circular Reveal La animación no funciona
- Velocímetro Android (indicador de aguja)
- Matrix.setTranslate () sólo traduce la superficie visual de la vista y no el área seleccionable?
- Animación giratoria androide
- Cómo hacer la animación de marco suave en Android?
- Fragmento: Nombre de animación desconocido objectanimator
Solución obtenida con Spannable
A continuación se muestra la clase Thread que se ejecuta continuamente con un intervalo de 100 ms.
class MyThread extends Thread { //used for stopping thread boolean flag; //init flag to true so that method run continuously public MyThread() { flag = true; } //set flag false, if want to stop this thread public void setFlag(boolean flag) { this.flag = flag; } @Override public void run() { super.run(); while (flag) { try { Thread.sleep(intervalMiliSeconds); runOnUiThread(new Runnable() { @Override public void run() { Spannable spn = new SpannableString(txtView .getText().toString()); spn.setSpan(new ForegroundColorSpan(Color.WHITE), startPosition, endPosition, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); txtView.setText(spn); startPosition++; endPosition++; endPosition %= (lengthOfString + charGaps); startPosition %= lengthOfString; if (startPosition == 0) { endPosition = charGaps; startPosition = 0; } if (endPosition > lengthOfString) { endPosition = lengthOfString; } Log.d("Home", "Start : " + startPosition + " End : " + endPosition); } }); } catch (Exception e) { e.printStackTrace(); } } } }
Para utilizar el código anterior, utilice la siguiente implementación.
TextView txtView = (TextView) findViewById(R.id.txtView); int charGaps = 3; int startPosition = 0; int endPosition = charGaps; int lengthOfString = txtView.getText().length(); MyThread thread = new MyThread(); thread.start();
Salida
Todavía mejores respuestas serán más apreciadas .. 🙂
Aquí hay otro IOS como efecto de texto de diapositiva,
Creo que estás hablando de Shimmer Effect. Facebook hizo la biblioteca para eso. Le ayudará a mostrar el efecto de resplandor de izquierda a derecha con muchas más opciones.
Usted puede ver la documentación completa allí. Biblioteca Shimmer
Usted tiene 2 maneras:
1) trabajar con openGL y usar Shaders para hacer este efecto.
2) crear una capa por encima del texto que contenga un degradado [transparente] [blanco] [transparente] y animarlo.