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 desiderato. Questa documentazione fornisce una panoramica dei diversi modi per aggiungere movimento all'interfaccia utente.
Per capire meglio quando è necessario utilizzare le animazioni, consulta anche la sezione Materiale Guida alla progettazione del movimento.
Anima bitmap
Figura 1. Un elemento drawable animato.
Per animare un'immagine bitmap, ad esempio un'icona o un'illustrazione, utilizza le API di animazione drawable. Di solito, queste animazioni sono definite in modo statico con un elemento ma puoi anche definire il comportamento dell'animazione in fase di runtime.
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
Figura 2. Una sottile animazione visualizzata quando appare una finestra di dialogo e scompare, rende la modifica dell'interfaccia utente meno fastidiosa.
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, se modifichi
proprietà della posizione, la visualizzazione si sposta sullo schermo. Quando modifichi l'alpha
la vista va in dissolvenza in entrata o in uscita.
Per creare queste animazioni nel modo più semplice, attivale sul tuo in modo che quando modifichi la visibilità di una vista, venga applicata un'animazione automaticamente. Per maggiori informazioni, consulta la sezione Animazione automatica degli 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.
Modifica le dimensioni della visualizzazione con un'animazione di zoom.
Movimento basato sulla fisica
Figura 3. Animazione creata con ObjectAnimator.
Figura 4. Animazione creata con API basate sulla fisica.
Quando possibile, applica alle animazioni la fisica del mondo reale in modo che naturale. Ad esempio, deve mantenere lo slancio quando il target modifiche e transizioni fluide durante ogni modifica.
Per fornire questi comportamenti, la libreria di Assistenza Android include contenuti basati sulla fisica API di animazione che si basano sulle leggi della fisica per controllare il modo in cui le tue animazioni che si verificano.
Ecco due animazioni basate sulla fisica comuni:
Le animazioni non basate sulla fisica, ad esempio quelle create con le API di ObjectAnimator
, sono piuttosto statiche e hanno
una durata fissa. Se il valore target cambia, devi annullare l'animazione in
quando cambia il valore target, riconfigura l'animazione con un nuovo valore
il nuovo valore iniziale e aggiungi il nuovo valore target. Visivamente, questa procedura
crea un'interruzione brusca nell'animazione e un movimento sconnesso successivamente,
come mostrato nella figura 3.
Animazioni create con API di animazione basate sulla fisica, come
DynamicAnimation
, sono gestiti da
forzato. La modifica del valore target comporta una modifica dell'efficacia. Il nuovo
si applica alla velocità esistente, il che fa una transizione continua verso
il nuovo target. Questo processo produce un'animazione più naturale,
come mostrato nella figura 4.
Animare le modifiche al layout
Figura 5. È possibile ottenere un'animazione per mostrare ulteriori dettagli modificando il layout o avviando una nuova attività.
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. Poi il sistema capisce ed esegue dell'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 elemento, applicando una transizione come quella mostrata 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 l'articolo Animare le modifiche al layout utilizzando una transizione. Per un esempio di codice, consulta Transizione di base .
Animazione di un'attività
Su Android 5.0 (livello API 21) e versioni successive, puoi anche creare animazioni che al passaggio tra un'attività e l'altra. 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 come far scorrere la nuova attività all'interno o con una dissolvenza in entrata, ma puoi anche creare animazioni che passano le visualizzazioni condivise di ogni attività. Ad esempio, quando l'utente tocca un elemento per visualizzarlo ulteriori informazioni, puoi passare a una nuova attività con un'animazione fa crescere l'elemento fino a riempire lo schermo, come nell'animazione mostrata figura 5.
Come sempre, chiami
startActivity()
,
ma passare un pacchetto di opzioni offerte
ActivityOptions.makeSceneTransitionAnimation()
.
Questo pacchetto di opzioni potrebbe includere le viste condivise tra
in modo che il framework di transizione possa collegarle durante l'animazione.
Per altre risorse, consulta: