- Learn
- Guida Android
- Animazioni con ViewPropertyAnimator
Animazioni con ViewPropertyAnimator
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()
escaleY()
; - traslazione in una o più direzioni con
translation()
,translationX()
otranslationY
; - 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
.
Se vuoi aggiornamenti su Android, mobile inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Un centralino su misura con Voverc
Grazie a voverc possiamo avere un centralino su misura da sfruttare in piena mobilità, ricevendo telefonate sul nostro smartphone come […]