Voglio essere in grado di fare un'animazione di testo e modificare la dimensione del testo in un TextView. Ho letto che ci sono animazioni di proprietà in Android ma se qualcuno conosce un codice semplice che può fare questo per me o un esempio da qualche parte lo apprezzerò profondamente. Grazie in anticipo!animazione della dimensione del testo di TextView
risposta
scale.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="1.0"
android:fromYScale="1.0"
android:toXScale="2.0"
android:toYScale="2.0"
android:duration="3000"></scale>
</set>
Una funzione in un'attività:
private void RunAnimation()
{
Animation a = AnimationUtils.loadAnimation(this, R.anim.scale);
a.reset();
TextView tv = (TextView) findViewById(R.id.firstTextView);
tv.clearAnimation();
tv.startAnimation(a);
}
estratto e modificato dal here
Che ne dici di this link? In particolare gli esempi di scala. Fornisce codice sorgente e video per diversi tipi di animazioni Android.
Grazie per la tua rapida r esponse e per il link. Controllerò. – Sandra
Non fare affidamento sul collegamento poiché potrebbe ridursi in futuro. Aggiungi la parte rilevante del link alla risposta. –
Animation animation=new TranslateAnimation(0,480,0,0);
animation.setDuration(5000);
animation.setRepeatMode(Animation.RESTART);
animation.setRepeatCount(Animation.INFINITE);
text.startAnimation(animation);
// applying animation to textview object..
Se si utilizza evento pulsante per visualizzare l'animazione poi mettere il codice all'interno di onClick() altrimenti usa il metodo override suWindowFocusChanged (HasFocus booleana) per avviare l'animazione
Usa ValueAnimator in Android
final float startSize = o; // Size in pixels
final float endSize = 30;
final int animationDuration = 1000; // Animation duration in ms
ValueAnimator animator = ValueAnimator.ofFloat(startSize, endSize);
animator.setDuration(animationDuration);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
float animatedValue = (float) valueAnimator.getAnimatedValue();
tv.setTextSize(animatedValue);
}
});
animator.start();
riferimento questo link ValueAnimator
Un'altra soluzione è che applicare l'animazione scala TextView o il suo layout genitore
ScaleAnimation scaleAnimation = new ScaleAnimation(0.7f, 1.1f, 0.7f, 1.1f, ScaleAnimation.RELATIVE_TO_SELF, 0.5f,
ScaleAnimation.RELATIVE_TO_SELF, 0.5f);
scaleAnimation.setDuration(600);
viewZoom.startAnimation(scaleAnimation);
Codice copiato da [questa risposta] (http://stackoverflow.com/a/30324368/2025923) – Tushar
Non funziona uniformemente su OnePlus3T ( –
correlati [Animazione della dimensione del testo di Android TextView e non dell'intera TextView] (// stackoverflow.com/a/30324368) – Tushar