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; }}

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

更多相关文章

  1. android 多线程下载原理
  2. Android中的线程模型
  3. 【Android】Android消息处理机制
  4. android 的线程模型和AsyncTask
  5. Android中的多线程之handler
  6. 《第一行代码--Android》读书笔记之多线程与服务
  7. Android异步机制一:使用Thread+Handler实现非UI线程更新UI界面
  8. (安卓/android)dex2oat与应用安装时间优化

随机推荐

  1. 这外包代码写的真烂,这次坑惨我了!
  2. 我用python算出了同事的身份证号码!
  3. 用Python写几行代码,一分钟搞定一天工作量
  4. 入职第二天,老大就让我重构代码!
  5. Python爬取上万条大众点评数据,解读一线快
  6. 用python重温统计学基础:离散型概率分布
  7. 23岁,开始了我的北漂生活!
  8. 如何高效地远程部署?自动化运维利器 Fabri
  9. 老大,我可以在实际项目中尝试新技术吗?
  10. 学编程这么久,还傻傻分不清什么是方法(meth