TextView实现文字一个一个打出,逐个打出TextView里面的文字

现在我们实现一个小功能,让屏幕上,某个地方逐个打出一行文字,
先来看一下效果图:
这里写图片描述

等等,那位大哥讲话了,
这里写图片描述

额,不好意思,刚才卡了,

这里写图片描述

方法很多,有的同学想到,用图片实现(这种应该是最Low的),还有一种就是把文字显示出来,上方用东西盖住,每一秒钟取消一个遮盖物,以及自定义一个控件等等,那么我感觉这些方法是不怎么样的,小题大做,复杂化了,其实这个功能翻译过来就是:让TextView每隔一秒显示以一个字符串(并非每一秒多出来一个汉字),那么就简单了,可以开启一个线程,那么线程主要方法如下:

 new Thread(
                new Runnable() {
                    @Override
                    public void run() {
                        try {
                            final String stv = s.substring(0, n);//截取要填充的字符串
                            tv.post(new Runnable() {
                                @Override
                                public void run() {
                                    tv.setText(stv);
                                }
                            });
                            Thread.sleep(time);//休息片刻
                            nn = n + 1;//n+1;多截取一个
                            if (nn <= length) {//如果还有汉字,那么继续开启线程,相当于递归的感觉
                                startTv(nn);
                            }

                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
               }


        ).start();

下面就是要实现循环就可以了,这里的n是个形参,我是把这一坨代码放在一个叫 startTv(int n)这样一个方法里面,这样就 简单的实现功能。全部代码已经奉上,点击查看github全部代码

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值