Animazioni con ViewPropertyAnimator

25 ottobre 2014

Abbiamo visto che è possibile utilizzare l’XML per effettuare le animazioni. Oltre a questo tipo di possibilità, è necessario conoscere anche un altro strumento, ovvero la classe ViewPropertyAnimator. Si tratta di un oggetto relativamente giovane del framework, introdotto con Android 3.1 che permette di attuare animazioni con un approccio totalmente “Java”, tutto configurato via codice.

Questa classe offre le animazioni più comuni, che possono essere invocate mediante appositi metodi:

  • rotazione lungo entrambi gli assi o solo rispetto all’asse X o Y: metodi rotation, rotationX, rotationY;
  • ingrandimento o riduzione, anche questo su uno o più assi, con scale(), scaleX() e scaleY();
  • traslazione in una o più direzioni con translation(), translationX() o translationY;
  • trasparenza, che può essere modificata con il metodo alpha.

Per ottenere un riferimento ad un oggetto ViewPropertyAnimator è necessario invocare il metodo animate() sulla View. Ad esempio, il comando:

txt.animate().rotationY(180);

consente di effettuare la rotazione della View txt rispetto all’asse Y di 180 gradi.

È disponibile anche un altro meccanismo che avevamo apprezzato nelle animazioni XML: l’attivazione di codice in conseguenza a determinati eventi connessi dell’effetto grafico. È possibile utilizzare più approcci.

Il primo è utilizzando un AnimationListener: un oggetto può implementare questa interfaccia e definire l’override dei metodi astratti. ViewPropertyAnimator utilizza il metodo setListener, che riceve il riferimento all’oggetto configurato.

In alternativa, si possono usare metodi specifici di ViewPropertyAnimator: withStartAction e withEndAction. In entrambi i casi di deve passare come parametro un oggetto Runnable, che include il codice da eseguire al momento opportuno.

Le righe di codice seguente svolgono la medesima rotazione vista in precedenza, ma mostrano un messaggio Toast alla conclusione:

txt.animate().rotationY(180).withEndAction(
new Runnable() 
{
	Override
	public void run() 
	{
	Toast.makeText(getApplicationContext(), "Rotazione finita", Toast.LENGTH_SHORT).show();
	}
});

Gli altri metodi disponibili e sopra citati possono essere utilizzati in maniera analoga, ed un buon esercizio potrebbe essere quello di applicare tali metodi per riprodurre gli stessi esempi citati nel capitolo sulle animazioni XML, ovviamente ignorando i file XML ed inserendo le invocazioni a ViewPropertyAnimator all’interno del metodo avvia.

Tutte le lezioni

1 ... 56 57 58 ... 84

Se vuoi aggiornamenti su Animazioni con ViewPropertyAnimator inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su Animazioni con ViewPropertyAnimator

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy