Android 自定义 Toast 显示时间
Android自定义Toast显示时间
实现代码:
packagecom.wm.realname.util;
importandroid.content.Context;
importandroid.os.Handler;
importandroid.view.View;
importandroid.widget.Toast;
/**
*Toast自定义显示时间
*使用方法
*1.先初始化类MyToastmyToast=newMyToast(this);
*2.显示消息myToast.setText("要显示的内容");//设置要显示的内容
*myToast.show(8000);//传入消息显示时间,单位毫秒,最少2000毫秒,并且只能是2000的倍数。
*传入0时会一直显示,只有调用myToast.cancel();时才会取消。
*3.取消消息显示myToast.cancel();
**/
publicclassToastUtil{
privateContextmContext=null;
privateToastmToast=null;
privateHandlermHandler=null;
privateintduration=0;
privateintcurrDuration=0;
privatefinalintDEFAULT=2000;
privateRunnablemToastThread=newRunnable(){
publicvoidrun(){
mToast.show();
mHandler.postDelayed(mToastThread,DEFAULT);//每隔2秒显示一次
if(duration!=0){
if(currDuration<=duration){
currDuration+=DEFAULT;
}else{
cancel();
}
}
}
}
publicToastUtil(Contextcontext){
mContext=context;
currDuration=DEFAULT;
mHandler=newHandler(mContext.getMainLooper());
mToast=Toast.makeText(mContext,"",Toast.LENGTH_LONG);
}
publicvoidsetText(Stringtext){
mToast.setText(text);
}
publicvoidshow(intduration){
this.duration=duration;
mHandler.post(mToastThread);
}
publicvoidsetGravity(intgravity,intxOffset,intyOffset){
mToast.setGravity(gravity,xOffset,yOffset);
}
publicvoidsetDuration(intduration){
mToast.setDuration(duration);
}
publicvoidsetView(Viewview){
mToast.setView(view);
}
publicvoidcancel(){
mHandler.removeCallbacks(mToastThread);//先把显示线程删除
mToast.cancel();//把最后一个线程的显示效果cancel掉,就一了百了了
currDuration=DEFAULT;
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短