web-dev-qa-db-fra.com

Android propriétés pouvant être animées avec ObjectAnimator

Je commence à jouer avec les animations de propriété sur les animations de vue car j'ai une vue qui doit être mise à l'échelle et repousser les autres comme elle le fait. J'ai vu quelques exemples mais je me demande simplement s'il existe un endroit qui fournit une liste des propriétés qui peuvent être modifiées à l'aide de ces classes. Par exemple, j'ai vu un tutoriel qui a fait une rotation rapide en utilisant:

ObjectAnimator.ofFloat(aniView, "rotation", 360)

Ce qui est assez cool, mais je n'aurais pas connu la propriété rotation sans ce tutoriel exact, existe-t-il une liste complète de ce qui peut être fait? La propriété particulière que je veux animer est le poids d'une vue dans un LinearLayout, si quelqu'un a des conseils à ce sujet.

50
Cathal Comerford

Mieux vaut tard que jamais, voici donc la liste complète des propriétés qui peuvent être animées avec ObjectAnimator.

http://developer.Android.com/guide/topics/graphics/prop-animation.html#views

56
Onyx

Docs implique que toute valeur peut être utilisée avec ObjectAnimator tant que vous suivez une convention de dénomination:

  1. La propriété d'objet que vous animez doit avoir une fonction de définition (en cas de chameau) sous la forme de set<propertyName>(). Étant donné que l'ObjectAnimator met automatiquement à jour la propriété pendant l'animation, il doit pouvoir accéder à la propriété avec cette méthode de définition. Par exemple, si le nom de la propriété est foo, vous devez disposer d'une méthode setFoo(). Si cette méthode de définition n'existe pas, vous avez trois options:
    • Ajoutez la méthode setter à la classe si vous en avez le droit.
    • Utilisez une classe wrapper que vous avez le droit de modifier et que ce wrapper reçoive la valeur avec une méthode de définition valide et la transmette à l'objet d'origine.
    • Utilisez plutôt ValueAnimator.
  2. [...]

En ce qui concerne votre question, View a la méthode setRotation(float) - qui vous donne un indice qu'elle peut être utilisée. En particulier, voici comment vous le feriez avec un --- TimeInterpolator :

ObjectAnimator anim = ObjectAnimator.ofFloat(myView, "rotation", 0f, 90f);
anim.setDuration(2000);                  // Duration in milliseconds
anim.setInterpolator(timeInterpolator);  // E.g. Linear, Accelerate, Decelerate
anim.start()                             // Begin the animation

Vous pouvez lire la documentation pour plus de détails sur les attentes de ObjectAnimator.

24
bcorso

Voici la liste complète des noms de propriétés que vous recherchez:

  • rotation
  • rotationX
  • rotationY
  • translationX
  • translationY
  • scaleX
  • scaleY
  • pivotX
  • pivotY
  • alpha
  • x
  • y

Source: Documents

16
Sagar

Utilisez " translateX " ou " transalteY " pour déplacer un <group> Jetez un œil à vectorDrawable

0
Milk Littile