2010-04-02 13 views

risposta

26

Fondamentalmente, oltre alle (abbastanza dolorosi) animazioni fotogramma/Tween ci sono animazioni di layout, vedere animazioni e animazioni di transizione. Le animazioni di layout si attivano quando viene visualizzato un elemento, sia nel layout dell'attività iniziale o quando si imposta una vista su visibile, sia durante le animazioni di transizione all'avvio di una nuova attività. Le animazioni a vista standard sono le animazioni flessibili del cavallo di battaglia che puoi attivare su una base per visualizzazione/layout, ma richiedono un po 'più di lavoro (al di fuori delle definizioni XML, le animazioni di attività e layout sono generalmente one-liner).

Ci sono anche classi utili come ViewFlipper per facilitare il lavoro con alcune animazioni. Controlla l'applicazione demo API Android fornita con l'SDK (documentazione here). Le animazioni di visualizzazione semplificate sono in this class, le transizioni in this class e alcuni esempi più complessi here (c'è un esempio di animazione di layout nell'app demo dell'API 2.0, ma non riesco a trovarlo nei documenti online). Assicurati di controllare anche l'XML correlato per le demo in res/anim; la specifica sull'animazione XML nella documentazione è un po 'scarsa, ma ci sono molti buoni esempi nelle demo API e nel codice sorgente Android. È possibile utilizzare XML per personalizzare sia il tipo di transizioni (dissolvenza, scorrimento, ecc.) Che le interpolazioni (accelerazione, superamento ecc.), Che fornisce una buona quantità di energia (sufficiente a coprire la maggior parte dei casi d'uso, comunque).

La classe AnimationUtils può essere di grande aiuto. Una veloce grep attraverso il codice sorgente del sistema Android dovrebbe darti un grande materiale di lavoro per tutto quanto sopra. Queste risorse dovrebbero essere sufficienti per iniziare; in bocca al lupo!

ADDENDUM (5/2011): C'è anche il sistema (3.0+ solo) property animation, che è davvero interessante perché è possibile utilizzarlo per animare proprietà arbitrarie su viste personalizzate; a meno che non si stia scrivendo un'app specifica per il 3.0, è necessario attendere prima di utilizzarla.

+1

Se il tuo target è <3.0, consulta l'eccellente libreria NineOldAndroid. http://nineoldandroids.com/ – irwinb

+1

Definitivamente. Avvertenza: AFAIK qualsiasi animazione di proprietà che non può simulare con il vecchio sistema verrà semplicemente ignorata, e anche alcune di quelle che possono fingere sembreranno meno eleganti quando si usano le vecchie conversioni di compatibilità di sistema (in particolare, ridimensionando le animazioni con i contenuti intorno al ridimensionamento della visualizzazione: si tratta solo di una limitazione dell'implementazione del vecchio sistema che modifica solo il disegno delle viste anziché le loro dimensioni effettive). –