web-dev-qa-db-fra.com

Android animator versus répertoires de ressources anim

Je fais des recherches sur l'utilisation appropriée des répertoires de ressources d'Android et ce qui suit n'est pas clair pour moi:

Quelle est la différence entre le répertoire de ressources animateur Android Android et le répertoire de ressources anim Android anim?)

http://developer.Android.com/guide/topics/resources/providing-resources.html#AlternativeResources

De plus, je suppose que la question que je pose est quelle est la différence entre les animations de propriétés et les animations d'interpolation?

35
chocospaz

Honnêtement, je pense que Google a fait un très bon travail en expliquant les différences dans leur guide API Property Animations (voir ci-dessous).

TL; DR les principales différences sont:

  1. Les animations d'interpolation sont succinctes et ne permettent de manipuler que l'emplacement (traduction), la taille (échelle), l'angle (rotation) et la translucidité (alpha) des vues . Le cadre des animations de propriétés est plus générique et flexible: il généralise le premier cas en permettant la mise à jour en temps réel de toute propriété (par exemple "foobar") de l'objet cible des animations - à condition qu'il dispose d'une méthode setFoobar (). setScaleX (), setAlpha (), etc. ne sont qu'un cas spécifique en ce qui concerne les vues.

  2. En conséquence, la mise en œuvre des animations d'interpolation est souvent plus facile et le code est plus léger.

  3. Les animations de propriétés peuvent être utilisées sur des objets cibles de tout type, pas seulement sur des vues: la seule chose qui compte est la définition des méthodes setFoobar () comme expliqué précédemment (recherche de méthode basée sur la réflexion).

  4. Les animations d'interpolation effectuent simplement des ajustements sur les configurations des vues, tandis que les animations de propriétés modifient efficacement l'objet. Un défaut courant de l'ancienne approche est que lorsque vous utilisez des animations pour déplacer des vues, la zone cliquable associée n'est pas mise à jour tout au long de l'animation et n'est pas synchronisée avec l'emplacement effectif de la vue à l'écran.

Pour citer le guide:

Différences entre l'animation de propriété et l'animation de vue

Le système d'animation de vue offre la possibilité d'animer uniquement des objets View, donc si vous souhaitez animer des objets non View, vous devez implémenter votre propre code pour le faire. Le système d'animation de vue est également contraint du fait qu'il n'expose que quelques aspects d'un objet View à animer, tels que la mise à l'échelle et la rotation d'une vue, mais pas la couleur d'arrière-plan, par exemple.

Un autre inconvénient du système d'animation de vue est qu'il ne modifie que l'endroit où la vue a été dessinée, et non la vue proprement dite. Par exemple, si vous avez animé un bouton pour vous déplacer sur l'écran, le bouton dessine correctement, mais l'emplacement réel où vous pouvez cliquer sur le bouton ne change pas, vous devez donc implémenter votre propre logique pour gérer cela.

Avec le système d'animation des propriétés, ces contraintes sont complètement supprimées, et vous pouvez animer n'importe quelle propriété de n'importe quel objet (vues et non vues) et l'objet lui-même est réellement modifié. Le système d'animation de propriété est également plus robuste dans la façon dont il exécute l'animation. À un niveau élevé, vous affectez des animateurs aux propriétés que vous souhaitez animer, telles que la couleur, la position ou la taille et pouvez définir des aspects de l'animation tels que l'interpolation et la synchronisation de plusieurs animateurs.

Le système d'animation de vue, cependant, prend moins de temps à configurer et nécessite moins de code à écrire. Si l'animation de vue accomplit tout ce que vous devez faire, ou si votre code existant fonctionne déjà comme vous le souhaitez, il n'est pas nécessaire d'utiliser le système d'animation de propriété. Il peut également être judicieux d'utiliser les deux systèmes d'animation pour des situations différentes si le cas d'utilisation se présente.

19
d4vidi

Fondamentalement les animations d'interpolation sont des animations standard,

par exemple: redimensionner, faire pivoter, traduire, etc. (ceux-ci peuvent être appliqués à tout type de vues)

Où sont Les animations de propriété comme le nom l'indique sont utilisées pour changer la propriété de n'importe quelle vue.

Par exemple: Modification de l'alpha d'ImageView, dans Lollipop modification de la valeur translationZ du bouton fab, etc.

J'espère que cela clarifie.

Cochez Android Voir l'animation Tween

Une animation d'interpolation peut effectuer une série de transformations simples (position, taille, rotation et transparence) sur le contenu d'un objet View. Ainsi, si vous avez un objet TextView, vous pouvez déplacer, faire pivoter, agrandir ou réduire le texte. S'il a une image d'arrière-plan, l'image d'arrière-plan sera transformée avec le texte. Le package d'animation fournit toutes les classes utilisées dans une animation d'interpolation.

vérifiez cette URL pour l'animation de propriété

Le système d'animation de propriété est un cadre robuste qui vous permet d'animer presque n'importe quoi. Vous pouvez définir une animation pour modifier n'importe quelle propriété d'objet au fil du temps, qu'elle s'affiche à l'écran ou non. Une animation de propriété modifie la valeur d'une propriété (un champ dans un objet) sur une durée spécifiée. Pour animer quelque chose, vous spécifiez la propriété d'objet que vous souhaitez animer, comme la position d'un objet sur l'écran, la durée pendant laquelle vous souhaitez l'animer et les valeurs que vous souhaitez animer entre.

16
irscomp

Essayez cette réponse plus courte:

res/anim - N'importe quelle vue Tween Animation ( redimensionner, faire pivoter, traduire).

res/animator - Certaines vues Property Animation ( ImageView - change alpha, FAB - règle l'ordre Z).

11
Zon