Android逐字符显示文字动画
任何人都知道执行动画的任何有效方法,所要做的就是逐个字符地显示文本?喜欢:
T
Th
Thi
这
这我
这是
...
等等。
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
任何人都知道执行动画的任何有效方法,所要做的就是逐个字符地显示文本?喜欢:
T
Th
Thi
这
这我
这是
...
等等。
谢谢!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(10)
我使用了递归方法,还在单词之间添加了一点延迟以获得更多人性化的感觉。
将 textView 作为视图与文本一起发送,并发送“1”作为从头开始输入的长度
I used a recursive method, also added a bit delay in between words to have more human feel.
Send the textView as view along with the text and send '1' as the length to type from start
我知道现在已经太晚了,但仍然有人可能从 Google 到达这里。
事实上,我的应用程序也需要这样的东西,所以自己做了一个。
尝试一下 Fade-In TextView,它使每个角色都以平滑的 Alpha 动画出现。使用方法也相当简单。
在 XML 布局中
在 Activity/Fragment 中
更多信息
Fade-In TextView 库直接从原生 TextView 类继承其属性,该类意味着支持所有原生 TextView 方法。实际上没有任何限制,包括多行支持。该库还有一些自己的方法和属性,可以提供对视图的完全控制。
I know its too late now but someone still may arrive here from Google.
Actually, I too needed something like this for my app, so made one myself.
Try out Fade-In TextView, it makes every character appear with a smooth alpha animation. Usage is also quite simple.
In the XML layout
In the Activity/Fragment
Some more information
The Fade-In TextView library inherits its properties directly from the native TextView class, which means that all the native TextView methods are supported. There are practically no limitations including multiline support. The library also has some of its own methods and attributes which offer full control over the View.
理论上,
您当然会在运行方法中进行迭代。
In theory it would be
You will of course do the iterate in your runmethod.
上面提供的大多数解决方案都会引发各种错误。我猜解决方案已经很旧了。我偶然发现了这个 android studio 插件,它的作用就像魅力一样。
1.AutoTypeTextView的安装非常简单。只需在 build.gradle 中添加即可
2.添加一个新的命名空间,您将使用该命名空间添加 AutoTypeTextView 并使用其标签。
因此您的根布局应该如下所示
;
将其添加到您的 xml 文件中。
<代码>
只需执行这三个步骤,您就可以开始了。您可以查看此处的文档以了解更多详细信息
Most of the solutions provided above throw various errors. I guess the solutions are old. I stumbled on this android studio plugin and it works like charm.
1.Installation of AutoTypeTextView is preety simple. Just add in build.gradle
2.Add a new namespace which you will use for adding AutoTypeTextView and using its tags.
Hence your root layout should look like this
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:attv="http://schemas.android.com/apk/res-auto"
Add this to your xml file.
<com.dragankrstic.autotypetextview.AutoTypeTextView
android:id="@+id/lblTextWithoutMistakes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
attv:animateTextTypeWithoutMistakes="Hello World!" />
With just these three steps you are good to go. You can check out the documentation here for more details
只是为了在使用 Kotlin 代码时添加 @Devunwired 的答案,
我改变了(在 animateText 函数中):
mHandler.postDelayed(mRunnable,mDelay)
到mRunnable.run()
所以我的最后一个 Kotlin 类看起来像这样:
另外,这是一个快速而肮脏的代码(仍在 Kotlin 中),没有子类化。
内部 Activity:
一个加载点动画的简单示例:
animateText(". . .", 400){switchStateON()}
Just to add to @Devunwired's answer when working with Kotlin code,
I changed (in animateText function):
mHandler.postDelayed(mRunnable,mDelay)
tomRunnable.run()
so my final Kotlin class looks like this:
Also, a quick and dirty code (still in Kotlin) without subclassing.
Inside Activity:
A simple example for animating a loading dots:
animateText(". . .", 400){switchStateON()}
是的,我知道已经有一段时间了,但我希望能够使用 ValueAnimator 以不同的方法帮助其他人
我认为更合适,而不是上面的解决方案,当然如果你使用的是 RxJava
Yep,I know it's been a while but I hope to help others with a different approach using ValueAnimator
I think is more appropriate, rather solution above, of course if you are using RxJava
这种方式非常简单并且可爱
This way is very easy and LOVELY
这可能不是最优雅的解决方案,但最简单的可能是
TextView
的快速子类,其中带有Handler
,它会经常更新文本,直到显示完整的序列:然后,您可以在 Activity 中使用它,如下所示:
如果您想要添加每个字母的一些动画效果,也许可以考虑子类化
TextSwitcher
。This may not be the most elegant solution, but the simplest is probably a quick subclass of
TextView
with aHandler
that updates the text every so often until the complete sequence is displayed:You can then use this in an Activity like so:
If you want some animation effects with each letter added, perhaps look at subclassing
TextSwitcher
instead.不需要设置额外的类使用这个,这里电视是布局中的文本视图
只需调用
setCharacterDelay(150);
animateText("示例字符串");
No need to set an extra class Use this, here tv is a textview in your layout
just call
setCharacterDelay(150);
animateText("Sample String");
这个新的 Devunwired 副本与 xml 布局
代码一起使用,
然后在 classStart 中定义 textView
this new copy for Devunwired with xml layout
code use
then define textView in classStart