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.
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
Docs implique que toute valeur peut être utilisée avec ObjectAnimator
tant que vous suivez une convention de dénomination:
- 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é estfoo
, vous devez disposer d'une méthodesetFoo()
. 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.
- [...]
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
.
Voici la liste complète des noms de propriétés que vous recherchez:
Source: Documents
Utilisez " translateX " ou " transalteY " pour déplacer un <group>
Jetez un œil à vectorDrawable