Animation personnalisée dans Android
J'ai écrit une coutume View
. Maintenant, je veux faire un peu d'animation personnalisé lorsque l'utilisateur touche.
Quand je dis coutume, je veux dire en gros, je veux rendre chaque image de moi-même, et pas utiliser un "prédéfinis" animation comme décrit ici.
Quelle est la bonne façon de mettre en œuvre cette?
- cet article décrit le niveau des animations (rotation, translation, etc). Ce que je veux parler ici est de personnaliser l'animation.
Vous devez vous connecter pour publier un commentaire.
Plus souple (et très facile) de façon à créer une animation personnalisée est d'étendre
Animation
classe.En général:
setDuration()
méthode.setInterpolator()
(pour exapmle vous pouvez utiliserLinearInterpolator
ouAccelerateInterpolator
etc.)applyTransformation
méthode. Ici, nous intéresse dansinterpolatedTime
variable qui change entre 0.0 et 1.0 et représentent la votre animation progrès.Voici un exemple (que j'utilise cette classe pour modifier ofsset de mon
Bitmap
.Bitmap
lui-même est établi dansdraw
méthode):Aussi vous pouvez modifier
View
en utilisantTransformation#getMatrix()
.Mise à JOUR
Dans le cas si vous utilisez Android Animateur de cadre (ou de la compatibilité de la mise en œuvre -
NineOldAndroids
) il vous suffit de déclarer setter et getter pour votre personnaliséView
de la propriété et de l'animer directement. Voici un autre exemple:C'est le code que j'utilise pour produire une coutume, frame by frame dans mon onCreate().
Après que j'ai besoin pour démarrer l'animation, mais il doit le faire dans le thread de l'INTERFACE utilisateur. Donc, j'utilise de l'Exécutable.
Je commence Exécutable par un onClick() en utilisant le .méthode post() de l'ImageView:
Je suppose que vous créer chaque image comme une image bitmap, puis de passer à l'Animation directement, au lieu d'obtenir le Drawable de ressources.
Mon animation personnalisée lors du remplacement de Fragment avec un autre Fragment:
XML slide_in_right:
XML slide_out_left:
Il y a quatre types d'animation que vous pouvez ajouter à votre vue personnalisée.
Ici est un post de blog qui explique chacun d'eux en détail.
Une fois que vous avez terminé avec la création d'une animation, il suffit d'utiliser le code ci-dessous pour ajouter que la coutume de l'animation de la vue.
En plus de la définition des interpolations en XML, vous pouvez également définir, image par image, des animations (stockées dans res/drawable).
Définir l'animation comme le fond de la Vue via setBackgroundResource.
Si vous cherchez à faire quelque chose de plus compliqué, jetez un oeil à la Toile classe. Voir la brève introduction sur la façon de dessiner avec de la Toile.