美文网首页
Android-打字机效果

Android-打字机效果

作者: 请叫我大帅666 | 来源:发表于2023-10-12 11:05 被阅读0次

一开始网上找方案,找到两种:

  1. 协程打印
suspend fun TextView.print1(text: String, finish:()->Unit) {
        repeat(t.length) {
            delay(30)
            this@print1.text = t.take(it + 1)
        }
}

这种方案,在增量文本更新的情况下,刷新 item,字体打印会疯狂的跳闪,把recyclerview的刷新动画屏蔽了,要不然一起闪。。。

  1. 使用 RxJava方案

var disposable: Disposable? = null

fun TextView.print2(text: String) {
        try {
            disposable = Flowable.interval(200, TimeUnit.MICROSECONDS)
                .take(text.length.toLong())
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe {
                    if (it == text.length.toLong() - 1) {
                        stop()
                    }
                }
        } catch (e: Exception) {
            e.printStackTrace()
        }
 }

fun stop() {
        if (disposable != null && !disposable!!.isDisposed) {
            disposable!!.dispose()
        }
 }

这种方式,在增量文本更新的情况下,直接闪退,因为会创建多个 disposable


后面,我自己对这块想解决方案,我尝试着下面这种方式

var index = 0

suspend fun TextView.print2(text: String, finish:()->Unit) {
        while (index < text.length) {
            delay(30)
            this.text = text.take(index + 1)
            index += 1
        }
        if (text.endsWith("(end)")) {
            LogUtils.d("======= 结束打印 。。。。。。")
            index = 0
            finish()
        }
}

这种方案,在有几十个数据不断刷新 item 的情况下,不会出现跳闪、闪退的问题,打印也很流畅

被这个刷新数据,打印的效果折腾了好几天,算是解决了,记录一下

相关文章

  • 打字机效果

    更新时需要重置currentIndex为0;赋新值;再调用startTypewrite 附Github地址http...

  • UGUI打字机效果

    在NGUI里有一个现成的脚步可以给Text的文字设置为打字机的效果,而UGUI并没有给我们提供这个方法。 所以下面...

  • javascript 实现打字机效果

  • 2021-01-30

    PR中一些文字效果是如何做成的 1.文字打字机效果:选择文字工具——打开效果控件——在文本栏中选择所需的文字效果—...

  • Android Studio 视图结构

    1、Tools->Android->Layout Inspector2、Tools->Android->Andro...

  • 给我一首诗的时间

    前端入坑纪 59 今天来分享最简单版打字机效果 好,详解如下! OK,first things first! 点...

  • 【PPT制作】文字打字机效果

    使用软件:WPS演示2019版 制作步骤: 一、插入文本框,输入文字 二、设置动画 ①进入“动画”→选择“出现” ...

  • [JS插件]酷炫的打字机效果: Typed.js

    一. Type.js效果演示 Type.js是一个轻量级的插件, 用于实现页面文字的打字机效果. 它使用起来非常简...

  • ANDROID-漂浮背景效果

    效果图: GIF动图效果不是很好,实际效果非常平滑very smooth,而且添加不同的图形可以组成各种效果,目前...

  • 在Premiere里实现打字机效果

    在视频剪辑制作过程中,文字,或者说字体动效的设计,是经常遇到的工作。 而其中,文字的打字机效果可以说很好用。模拟真...

网友评论

      本文标题:Android-打字机效果

      本文链接:https://www.haomeiwen.com/subject/cjznbdtx.html