Android Studio 实现打字效果

 所谓的打字效果就是将一个字符串一个一个的字符输出到屏幕上,实现代码如下:

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.widget.TextView;

import java.util.Timer;
import java.util.TimerTask;

public class class_x extends AppCompatActivity {
    private  int i=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_class_x);
        TextView text=findViewById(R.id.Text_content);//获取文本对象
        String a="我喜欢你就像是烟火升空,会在心里每一个小地方,都绽放小小的烟花,在心里噼里啪啦的炸开。";//需要打印的文字
        Handler handler=new Handler(Looper.getMainLooper()){
            @Override
            public void handleMessage(Message msg){
                if( msg.what==1 ){
                    text.setText(msg.obj+"");
                }//判断信息是否是对应线程传递过来的
            }
        };//Handler用于子线程同主线程即UI线程通讯
        Timer timer = new Timer();
        timer.schedule(new TimerTask(){
            @Override
            public void run() {
                if(i<a.length()){
                    Message msg=new Message();
                    msg.what=1;//用于标识线程
                    msg.obj=a.substring(0,i+1);//传递的信息
                    handler.sendMessage(msg);//传递信息
                    i++;
                }else{
                    timer.cancel();//取消定时器
                }
            }
        },1000,100);//设定一个定时器,每隔100ms运行一次run()方法。第一次延时1s后执行
    }
}

对于这段代码需要注意几点:

  1. Handler的使用是为了实现对UI界面的修改,直接在子线程修改UI界面会导致报错。通过重写Handler的handleMessage方法来实现对UI界面的修改。
  2. Message类用于标识和保存需要传递的信息。
  3. 通过重写Timer类的run()方法即可实现一个定时器。

 xml界面就只加了一个TextView这里就不给出代码了。

本人新手一枚,欢迎各位大佬指出文章所存在的问题。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的深柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值