Seule L'Animation De Plusieurs Points De Vue
Est-il un moyen pour animer plusieurs points de vue en même temps?
Ce que je veux faire est de traduire les animations:
J'ai 5 TextViews et 4 des bandes de couleur (plaine RelativeLayouts avec un arrière-plan). Au début de l'animation, le stips sont empilées avec le TextViews dans une rangée horizontale. À la fin, je veux que tous les TextViews empilées entre les bandes:
C'est un dessin très simple, mais il démontre ce que je veux faire. Est-il possible de le faire avec des animations, ou dois-je utiliser de la toile animations.
Vous devez vous connecter pour publier un commentaire.
Créer votre animation d'objets, puis utilisez
startAnimation
collectivement sur tous les points de vue en même temps. Il serait donc quelque chose comme ceci:Il suffit de noter que plus les animations en cours à la fois, le plus lent, il va être.
startAnimation
sur une vue, il commence à invalider lui-même jusqu'à ce qu'il atteint la position souhaitée. Lorsque vous appelez sur tous les points de vue à la fois, ils vont tous appelinvalidate()
sur eux-mêmes, puis sur le prochain dessin pass, chaque point de vue sera tiré dans leur image suivante. Puisque vous êtes à l'appel de tout cela sur le thread de l'INTERFACE utilisateur de toute façon, aucun des animations vont démarrer jusqu'à ce que vous avez retourné à partir de cette méthode. REMARQUE: l'Utilisation de la pré-Nid d'animation cadre se déplace simplement le visual partie de la vue. L'utilisateur ne pourra pas cliquer sur elle.Vous pouvez utiliser le ObjectAnimator pour animer les multiples comme suit:
minSdkVersion="14"
ou plus qui a accès à la plate-forme d'animation Api."Vous pouvez utiliser AnimationSet
J'ai réussi à partager une seule Animation par exemple entre plusieurs points de Vue. Au moins avec un AlphaAnimation. J'ai eu une ListView et une animation qui devrait être appliquée à un enfant en particulier de tous les élément de la liste des vues. Dans mon cas, il aurait été possible pour le point de vue de "rejoindre" et "quitter" l'partagé animation à tout moment, et il ne devrait pas affecter les autres vues animées de toute façon ou d'interférer avec la déjà en cours d'exécution de l'animation.
Pour atteindre ce que je devais faire un réglage de copie d'android stock AlphaAnimation.
Mon cas est assez particulier, mais que ce soit ici au cas où quelqu'un a à traiter avec les mêmes objectifs avec ListView.
Pour définir cette animation de vue:
Et à démarrer une animation (précédemment établies par setAnimation), DEUX choses doivent être faites:
Et après cela, vous devez manuellement appel invalidate() sur chaque vue qui est concerné par l'animation.
L'habitude startAnimation() ne invalidate() pour vous, mais setAnimation ne l'est pas.
(lire le commentaire sur la Vue.setAnimation() la méthode en android sources).