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

现在我们实现一个小功能,让屏幕上,某个地方逐个打出一行文字,
先来看一下效果图:
TextView实现文字一个一个打出,逐个打出TextView里面的文字_第1张图片

等等,那位大哥讲话了,
TextView实现文字一个一个打出,逐个打出TextView里面的文字_第2张图片

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

这里写图片描述

方法很多,有的同学想到,用图片实现(这种应该是最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全部代码

你可能感兴趣的:(安卓之小功能)