Introduzione alle animazioni

Prova la funzionalità Scrivi
Jetpack Compose è il toolkit per l'interfaccia utente consigliato per Android. Scopri come utilizzare le animazioni in Scrittura.

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:

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: