如何在android中实现TextView中的文字逐一显示

Posted 轻烟散入五侯家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在android中实现TextView中的文字逐一显示相关的知识,希望对你有一定的参考价值。

1、在类中写入以下代码

    private TextView textView4;
    public static final int DISPLAY_TEXT = 1;
    String explainText = "这段文字会逐一显现";//这个是要显示的总文字
    String displayExplainText = "";//这个是会从小到全的显示的文字
    //handler在接收到message(所含what字段为1)时,显示更新后的文字
    private Handler handler = new Handler(Looper.getMainLooper()){
        public void handleMessage(Message message){//handler接收到指令后分不同的情况对界面UI进行更新
            switch(message.what){
                case DISPLAY_TEXT:
                    textView4.setText(displayExplainText);
                    break;
                default:
                    break;
            }
        }
    };

2、在onCreate方法中写入以下代码

        //开一个字线程,让主界面中的文字逐一浮现
        new Thread(new Runnable() {
            @Override
            public void run() {
                for(int i=0; i<explainText.length(); i++){
                    displayExplainText = explainText.substring(0, i+1);
                    try {
                        Thread.sleep(90);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                    Message message = new Message();
                    message.what = DISPLAY_TEXT;
                    handler.sendMessage(message);
                }
            }
        }).start();

3、原理:在子线程中不断改变要显示的String内容,然后再主线程对TextView控件的.setText()方法对文字进行显示,即可表现出逐一的效果。

以上是关于如何在android中实现TextView中的文字逐一显示的主要内容,如果未能解决你的问题,请参考以下文章

Android在TextView中实现RichText风格

Android Studio 如何在 LinearLayout 元素中实现锚链接?

Android中实现TextView垂直滚动,像跑马灯那样,但是垂直的

您将如何在 Android 应用程序中实现此教程屏幕?

Android中实现跨app之间数据的暴露与接收

Android中用TextView显示大量文字的方法