Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 58 di 97
  • livello avanzato
Indice lezioni

Animazioni con ViewPropertyAnimator

Un metodo alternativo all'XML per utilizzare le animazioni su Android, è basato sulla classe ViewPropertyAnimator: ecco come utilizzarla
Un metodo alternativo all'XML per utilizzare le animazioni su Android, è basato sulla classe ViewPropertyAnimator: ecco come utilizzarla
Link copiato negli appunti

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.

Ti consigliamo anche