Le animazioni possono aggiungere indicatori visivi che avvisano gli utenti su cosa sta succedendo nella tua app. Sono particolarmente utili quando l'interfaccia utente cambia stato, ad esempio quando vengono caricati nuovi contenuti o diventano disponibili nuove azioni. Le animazioni aggiungono anche un aspetto professionale alla tua app, che ne migliora l'aspetto e la qualità.
Android include API di animazione diverse a seconda del tipo di animazione che vuoi. Questa documentazione fornisce una panoramica dei diversi modi in cui puoi aggiungere movimento all'interfaccia utente.
Per capire meglio quando utilizzare le animazioni, consulta anche la guida di Material Design sul movimento.
Animare i bitmap
Per animare un'immagine bitmap, ad esempio un'icona o un'illustrazione, utilizza le API di animazione drawable. In genere, queste animazioni sono definite in modo statico con una risorsa drawable, ma puoi anche definire il comportamento dell'animazione in fase di esecuzione.
Ad esempio, un buon modo per comunicare all'utente che due azioni sono correlate è animare un pulsante di riproduzione che si trasforma in un pulsante di pausa quando viene toccato.
Per ulteriori informazioni, consulta Animare le immagini scomponibili.
Animare la visibilità e il movimento dell'interfaccia utente
Quando devi modificare la visibilità o la posizione delle visualizzazioni nel layout, è meglio includere animazioni sottili per aiutare l'utente a capire come sta cambiando l'interfaccia utente.
Per spostare, mostrare o nascondere le visualizzazioni all'interno del layout corrente, puoi utilizzare il sistema di animazione delle proprietà fornito dal pacchetto android.animation
, disponibile in Android 3.0 (livello API 11) e versioni successive. Queste API aggiornano le proprietà degli oggetti View
in un determinato periodo di tempo, ridisegnando continuamente la vista man mano che le proprietà cambiano. Ad esempio, quando modifichi le proprietà di posizione, la visualizzazione si sposta sullo schermo. Quando modifichi la proprietà alpha, la visualizzazione si attenua o si espande.
Per creare queste animazioni nel modo più semplice, attivale nel layout in modo che, quando modifichi la visibilità di una visualizzazione, venga applicata automaticamente un'animazione. Per saperne di più, consulta Animare automaticamente gli aggiornamenti del layout.
Per scoprire come creare animazioni utilizzando il sistema di animazione delle proprietà, consulta la Panoramica dell'animazione delle proprietà. Puoi anche consultare le seguenti pagine per creare animazioni comuni:
Modificare la visibilità di una visualizzazione con una transizione sfumata.
Modificare la visibilità di una visualizzazione con una rivelazione circolare.
Modificare le dimensioni della visualizzazione con un'animazione di zoom.
Movimento basato sulla fisica
Quando è possibile, applica le leggi della fisica del mondo reale alle animazioni in modo che abbiano un aspetto naturale. Ad esempio, devono mantenere il momentum quando il loro obiettivo cambia e devono effettuare transizioni fluide durante le eventuali modifiche.
Per fornire questi comportamenti, la libreria Android Support include API di animazione basate sulla fisica che si basano sulle leggi della fisica per controllare il modo in cui si verificano le animazioni.
Ecco due animazioni basate sulla fisica comuni:
Le animazioni non basate sulla fisica, come quelle create con le API ObjectAnimator
, sono abbastanza statiche e hanno una durata fissa. Se il valore target cambia, devi annullare l'animazione al momento della modifica del valore target, riconfigurarla con un nuovo valore come nuovo valore iniziale e aggiungere il nuovo valore target. Visivamente, questa procedura
crea un'interruzione brusca nell'animazione e un movimento sconnesso successivamente,
come mostrato nella figura 3.
Le animazioni create con API di animazione basate sulla fisica, come
DynamicAnimation
, sono basate su forze. La variazione del valore target comporta una variazione dell'efficacia. La nuova forza viene applicata alla velocità esistente, che effettua una transizione continua al nuovo target. Questo processo produce un'animazione dall'aspetto più naturale, come mostrato nella figura 4.
Animare le modifiche al layout
Su Android 4.4 (livello API 19) e versioni successive, puoi utilizzare il framework di transizione per creare animazioni quando scambi il layout all'interno dell'attività o del frammento corrente. Devi solo specificare il layout iniziale e finale e il tipo di animazione che vuoi utilizzare. Il sistema individua ed esegue un'animazione tra i due layout. Puoi utilizzarlo per sostituire l'intera interfaccia utente o per spostare o sostituire solo alcune visualizzazioni.
Ad esempio, quando l'utente tocca un elemento per visualizzare ulteriori informazioni, puoi sostituire il layout con i dettagli dell'elemento, applicando una transizione come quella mostrata nella figura 5.
Il layout iniziale e quello finale sono memorizzati ciascuno in un
Scene
, anche se la scena iniziale è solitamente determinata automaticamente dal layout corrente. Creando un Transition
, comunichi al sistema il tipo di animazione che vuoi, quindi chiami TransitionManager.go()
e il sistema esegue l'animazione per scambiare i layout.
Per ulteriori informazioni, leggi Animare le modifiche al layout utilizzando una transizione. Per un esempio di codice, consulta Transizione di base .
Animare il passaggio da un'attività all'altra
Su Android 5.0 (livello API 21) e versioni successive, puoi anche creare animazioni che fanno la transizione tra le tue attività. Si basa sullo stesso framework di transizione descritto nella sezione precedente, ma consente di creare animazioni tra layout in attività separate.
Puoi applicare animazioni semplici, ad esempio far scorrere la nuova attività dal lato o attenuarla, ma puoi anche creare animazioni che passino da una visualizzazione condivisa all'altra in ogni attività. Ad esempio, quando l'utente tocca un elemento per visualizzare altre informazioni, puoi passare a una nuova attività con un'animazione che lo ingrandisce gradualmente fino a riempire lo schermo, come l'animazione mostrata nella figura 5.
Come al solito, chiami
startActivity()
,
ma le passi un insieme di opzioni fornite da
ActivityOptions.makeSceneTransitionAnimation()
.
Questo insieme di opzioni potrebbe includere le viste condivise tra le attività in modo che il framework di transizione possa collegarle durante l'animazione.
Per altre risorse, consulta: