欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 自定义 Toast 显示时间

程序员文章站 2023-12-05 23:17:28
android 自定义 toast 显示时间 实现代码: package com.wm.realname.util; import android.conte...

android 自定义 toast 显示时间

实现代码:

package com.wm.realname.util;
import android.content.context;
import android.os.handler;
import android.view.view;
import android.widget.toast;
/**
 * toast自定义显示时间
 * 使用方法
 * 1.先初始化类 mytoast mytoast = new mytoast(this);
 * 2.显示消息 mytoast.settext("要显示的内容"); //设置要显示的内容
 *  mytoast.show(8000); //传入消息显示时间,单位毫秒,最少2000毫秒,并且只能是2000的倍数。
 *  传入0时会一直显示,只有调用 mytoast.cancel();时才会取消。
 * 3.取消消息显示 mytoast.cancel();
 * */
public class toastutil {
 private context mcontext = null;
 private toast mtoast = null;
 private handler mhandler = null;
 private int duration = 0;
 private int currduration = 0;
 private final int default = 2000;
 private runnable mtoastthread = new runnable() {
  public void run() {
   mtoast.show();
   mhandler.postdelayed(mtoastthread, default); // 每隔2秒显示一次
   if (duration != 0) {
    if (currduration <= duration) {
     currduration += default;
    } else {
     cancel();
    }
   }
  }
 }
 public toastutil(context context) {
  mcontext = context;
  currduration = default;
  mhandler = new handler(mcontext.getmainlooper());
  mtoast = toast.maketext(mcontext, "", toast.length_long);
 }
 public void settext(string text) {
  mtoast.settext(text);
 }
 public void show(int duration) {
  this.duration = duration;
  mhandler.post(mtoastthread);
 }
 public void setgravity(int gravity, int xoffset, int yoffset) {
  mtoast.setgravity(gravity, xoffset, yoffset);
 }
 public void setduration(int duration) {
  mtoast.setduration(duration);
 }
 public void setview(view view) {
  mtoast.setview(view);
 }
 public void cancel( ) {
  mhandler.removecallbacks(mtoastthread);// 先把显示线程删除
  mtoast.cancel();// 把最后一个线程的显示效果cancel掉,就一了百了了
  currduration = default;
 }
}


感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!