Les animations permettent d'ajouter des repères visuels pour informer les utilisateurs de ce qui se passe dans votre l'application. Ils sont particulièrement utiles lorsque l'interface utilisateur change d'état, par exemple de contenu ou de nouvelles actions sont disponibles. Les animations ajoutent également une pour votre application, ce qui lui donne une apparence et une convivialité de meilleure qualité.
Android inclut différentes API d'animation en fonction du type d'animation souhaité. Cette documentation présente les différentes façons ajouter du mouvement à votre UI.
Pour mieux comprendre quand utiliser des animations, consultez également la documentation Material Guide de conception sur le mouvement
Animer des bitmaps
Figure 1 : Un drawable animé.
Pour animer un graphique bitmap tel qu'une icône ou une illustration, utilisez les API d'animation drawable. En général, ces animations sont définies de manière statique avec un drawable ressource, mais vous pouvez également définir le comportement de l'animation au moment de l'exécution.
Par exemple, un bon moyen de communiquer à l'utilisateur que deux actions sont liées consiste à animer un bouton de lecture qui se transforme en bouton de pause appuyé dessus.
Pour en savoir plus, consultez Animer des images Drawable.
Animer la visibilité et le mouvement de l'UI
Figure 2. Une animation subtile lorsque la boîte de dialogue apparaît et disparaît rend le changement d'interface utilisateur moins choquant.
Lorsque vous devez modifier la visibilité ou la position des vues dans votre mise en page, il est préférable d'inclure des animations subtiles pour aider l'utilisateur à comprendre comment l'UI est en constante évolution.
Pour déplacer, afficher ou masquer des vues dans la mise en page actuelle, vous pouvez utiliser le système d'animation de propriétés fourni par le package android.animation
, disponible dans Android 3.0 (niveau d'API 11) ou version ultérieure. Ces API mettent à jour les propriétés de vos objets View
sur une période donnée, en redessinant continuellement la vue à mesure que les propriétés changent. Par exemple, si vous modifiez le paramètre
position, la vue se déplace sur l'écran. Lorsque vous modifiez la propriété alpha, la vue apparaît ou disparaît progressivement.
Pour créer ces animations de la manière la plus simple, activez-les dans votre mise en page afin qu'une animation s'applique automatiquement lorsque vous modifiez la visibilité d'une vue. Pour en savoir plus, consultez Animer automatiquement les mises à jour de mise en page.
Pour découvrir comment créer des animations à l'aide du système d'animation des propriétés, consultez la présentation de l'animation des propriétés. Toi peut également accéder aux pages suivantes pour créer des animations courantes:
Modifier la visibilité d'une vue à l'aide d'un fondu enchaîné
Modifier la visibilité d'une vue avec un dévoilement circulaire
Mouvement basé sur les lois de la physique
Figure 3. Animation créée avec ObjectAnimator.
Figure 4. Animation basée sur les lois de la physique API.
Dans la mesure du possible, appliquez la physique réelle à vos animations pour qu'elles soient un aspect naturel. Par exemple, elles doivent maintenir une dynamique lorsque leur cible les changements et effectuer des transitions en douceur entre les changements.
Pour permettre ces comportements, la bibliothèque Android Support intègre des modèles qui s'appuient sur les lois de la physique pour contrôler la façon dont vos animations se produisent.
Voici deux animations basées sur la physique couramment utilisées :
Les animations qui ne sont pas basées sur la physique, comme celles créées avec les API ObjectAnimator
, sont assez statiques et ont une durée fixe. Si la valeur cible change, vous devez annuler l'animation au moment du changement de valeur cible, reconfigurer l'animation avec une nouvelle valeur comme nouvelle valeur de début et ajouter la nouvelle valeur cible. Visuellement, ce processus crée un arrêt brutal de l'animation et un mouvement désarticulé par la suite, comme illustré dans la figure 3.
Les animations créées avec des API d'animation basées sur la physique, telles que DynamicAnimation
, sont basées sur la force. La modification de la valeur cible entraîne un changement de force. Les nouvelles
la force s'applique à la vitesse existante, qui effectue une transition continue vers
la nouvelle cible. Ce processus donne une animation plus naturelle,
comme illustré dans la figure 4.
Animer les changements de mise en page
Figure 5. Pour afficher plus de détails, vous pouvez modifier la mise en page ou démarrer une nouvelle activité.
Sur Android 4.4 (niveau d'API 19) ou version ultérieure, vous pouvez utiliser le framework de transition. pour créer des animations lorsque vous permutez la mise en page dans l'activité en cours ou Fragment. Il vous suffit de spécifier les mises en page de début et de fin le type d'animation que vous souhaitez utiliser. Ensuite, le système détermine et exécute une entre les deux mises en page. Vous pouvez l'utiliser pour remplacer l'UI entière, ou pour déplacer ou remplacer uniquement certaines vues.
Par exemple, lorsque l'utilisateur appuie sur un élément pour afficher plus d'informations, vous pouvez remplacer la mise en page par les détails de l'élément, en appliquant une transition comme celle illustrée à la figure 5.
La mise en page de début et de fin est chacune stockée dans un Scene
, bien que la scène de début soit généralement déterminée automatiquement à partir de la mise en page actuelle. Vous créez un Transition
pour indiquer au système le type d'animation souhaité, puis appelez TransitionManager.go()
. Le système exécute alors l'animation pour échanger les mises en page.
Pour en savoir plus, consultez Animer les modifications de mise en page à l'aide d'une transition. Pour obtenir un exemple de code, consultez BasicTransition.
Animer des transitions entre les activités
Sur Android 5.0 (niveau d'API 21) ou version ultérieure, vous pouvez également créer des animations qui une transition entre vos activités. Cette approche est basée sur la même transition décrit dans la section précédente, mais il vous permet de créer des animations entre les mises en page dans des activités distinctes.
Vous pouvez appliquer des animations simples, comme faire glisser la nouvelle activité depuis la ou un fondu, mais vous pouvez aussi créer des animations qui font la transition des vues partagées dans chaque activité. Par exemple, lorsque l'utilisateur appuie sur un élément pour afficher plus d'informations, vous pouvez passer à une nouvelle activité avec une animation qui fait grossir cet élément pour qu'il remplisse l'écran, comme illustré dans la figure 5.
Comme d'habitude, vous appelez startActivity()
, mais vous lui transmettez un ensemble d'options fournies par ActivityOptions.makeSceneTransitionAnimation()
.
Ce lot d'options peut inclure les vues partagées entre les activités afin que le framework de transition puisse les connecter pendant l'animation.
Pour obtenir des ressources supplémentaires, consultez les pages suivantes :