La vague de l'animation dans le TextView Android
J'utilise le code suivant pour animer mon TextView
dans mon onCreate()
méthode:
txtSize.setText("This is my Text");
txtSize.setAnimation(AnimationUtils.loadAnimation(myContext,
android.R.anim.slide_in_left));
Maintenant, je voulais vous demander si il est possible de faire de ce slide_in_left Animation venir comme une vague?
J'ai trouvé cet exemple ici, mais je ne sais pas comment l'utiliser dans mon cas (Glisser de gauche à droite et sur TextView
pas sur un GridView
): http://www.edumobile.org/android/android-development/wave-layout-animationexample/
Merci pour toute aide
mot par mot ou une lettre par lettre 😉 ?
Hmm bonne question 🙂 le Mieux serait si la phrase entière viendrait en 1 pièce... Comme la normale slide_in_left animation 😉
Pourriez-vous préciser votre question ce que tu veux dire par "comme une vague"? Merci.
Je veux qu'il soit un mélange entre la codecanyon.net/item/wave-text-effect/3590840 cette et le slide_in_left animation... Mais pas statique agité texte en mouvement, mais les lettres qui suivent les "vagues" jusqu'à ce qu'ils sont à l'intérieur de la mise en page...
Un assez facile à faire, bien qu'il aurait besoin d'un affichage personnalisé autant que je sache, serait d'utiliser de la Toile de drawTextOnPath personnalisé dans un onDraw (), méthode (docs: developer.android.com/reference/android/graphics/..., android.les graphiques.Chemin, float, float, android.les graphiques.Peinture de) ). Si ça aide, il est possible d'écrire un exemple de code. Mieux.
Hmm bonne question 🙂 le Mieux serait si la phrase entière viendrait en 1 pièce... Comme la normale slide_in_left animation 😉
Pourriez-vous préciser votre question ce que tu veux dire par "comme une vague"? Merci.
Je veux qu'il soit un mélange entre la codecanyon.net/item/wave-text-effect/3590840 cette et le slide_in_left animation... Mais pas statique agité texte en mouvement, mais les lettres qui suivent les "vagues" jusqu'à ce qu'ils sont à l'intérieur de la mise en page...
Un assez facile à faire, bien qu'il aurait besoin d'un affichage personnalisé autant que je sache, serait d'utiliser de la Toile de drawTextOnPath personnalisé dans un onDraw (), méthode (docs: developer.android.com/reference/android/graphics/..., android.les graphiques.Chemin, float, float, android.les graphiques.Peinture de) ). Si ça aide, il est possible d'écrire un exemple de code. Mieux.
OriginalL'auteur user754730 | 2014-01-06
Vous devez vous connecter pour publier un commentaire.
Un moyen de parvenir à l'effet, je pense que vous visez (je ne suis jamais sûr que j'ai compris sur...) est d'utiliser 3 bits utiles de Android:
onDraw
Path
créé après la mesure, ou plus tard, qui génère une onde de forme sur l'écran (docs)drawTextOnPath (String text, Path path, float hOffset, float vOffset, Paint paint)
(docs) incrémentationhOffset
sur chaque tirage se passe lors de la mise en mode animation.Pour les futurs lecteurs non familiers avec des vues personnalisées dans Android, ici, c'est le développeur de ressources.
L'API de notre point de vue, pourraient inclure:
setText(...)
bien sûrresetTextPosition()
pour réinitialiser les entrants animationanimateToRight(double millis duration)
pour démarrer l'animation et avec un temps.Il est également très important que la classe fonctionne avec
LayoutParams
, telles que les pixels de hauteur, WRAP_CONTENT et MATCH_PARENT. Maintenant, ce est difficile, parce que pour faire pleinement dans une voie qui n'est pas vraiment mauvais héritage de la pratique signifie généralement prépondérant beaucoup de choses. Donc, (tip top), il nous suffit de continuer à laisser la Disposition Params spécifier la hauteur et la largeur du texte pour le développeur, et puis, nous introduisons un nouveau sens àtopPadding
etbottomPadding
desetPadding
sur la vue:setPadding(int ...)
: arguments topPadding et bottomPadding définit l'espace qui sera utilisé en outre pour la vague.Voici quelques compilable utilisable code:
Explication
Nous utilisons un
enum
pour mettre la vue en trois états.TRANSITION_STARTING
fixe initiale, les variables et les raconte le point de vue dese déplacer dans la
TRANSITION_RUNNING
état. Cet état en permanenceinvalidates()
(re-appelonDraw
par le biais de l'INTERFACE utilisateur message de la file d'attente)l'état de la vue, de sorte qu'il sera tiré à nouveau avec de nouveaux paramètres. Vous aurez constamment voir ce modèle tout au long de Android de vue interne et le code du widget de base.
pxWLength
est un tweakable paramètre représentant la longueur d'onde de la vague.canvas.drawTextOnPath(getText().toString(), wavePath, leftOffset, (getHeight()-(getPaddingTop()+getPaddingBottom()))/4, getPaint());
nous avons besoin de modifier le décalage horizontal d'un chemin d'accès, car (un autre tip top) Android attire texte aligné au-dessus de le chemin, sinon le texte serait écrasé dans le creux de votre vague.Une bonne façon d'appeler ce serait alors:
puis à ajouter de la hauteur WRAP_CONTENT largeur de la belle et longue de votre activité (ou de l'utilisation de xml).
Cela aura besoin de quelques ajustements! J'espère que cela fonctionne ou au moins certaines des idées que vous en inspirer pour créer votre propre funky animation de texte des classes!
Je suis content, mais entrer en contact ici si vous avez des questions supplémentaires.
Je remercie! 🙂
Bonjour! Depuis, cela s'étend un TextView - je configurer android:textColor dans le XML, mais il semble ignoré. Il peint toujours le texte noir? De toute façon à l'améliorer pour qu'il utilise le TextView couleur normale de la méthode?
pas sûr à 100% que répondu à cette question, un temps, mais c'est probablement parce que la couleur de la valeur définie dans la classe parent est
onDraw
méthode à l'aide depaint.setColor(...)
. Vous pouvez probablement obtenir la couleur en utilisant le souhaitez à l'aidegetCurrentTextColor()
(et la peinture vous-même quelque part appropriée). Notez que ce sera aussi casser des choses comme les différentes couleurs en évidence. Mieux.OriginalL'auteur Tom
Essayer avec le Numéro L'interpolation techniques (comme en temps Opportun App) !
vous devriez faire de la coutume de la classe comme ceci:
Remarque: Vous devrez peut être modifier à tout point de vue (peut-être des Nombres,des textes ou de la vue personnalisée) puisque c'est pour les Nombres d'animation!
Si vous avez oublié le Android Afficher la hiérarchie:
Crédits: Sriramramani , Gist ,Git
Comment vous adapter à un TextView'?
bonne prise, je ne suis pas sûr, mais vous avez besoin de tout contrôler avec mControlPoint1, 2... (cf image). Laissez-vous savez, quand j'complet certains hacks sur elle! lire aussi cette ligne Les chiffres ne sont pas directement à partir d'une police dessiné comme un TextView, au lieu construit comme plusieurs segments dans ce blog qui je l'ai mentionné ci-dessus!
c'est aussi une façon de le faire valueanimator: stackoverflow.com/questions/15582434/... la couleur de l'animateur: stackoverflow.com/questions/4655326/text-color-animation
OriginalL'auteur LOG_TAG