自定义Toast
实际上你在查看安卓Toast源码就会发现安卓就是通过一个WindowManager对象把一个Toast对象添加进去,它就会在桌面显示了。然后又通过一个任务对象设定一定的时间后把Toast从WindowManager中移除掉即可消失。
//首先获取一个WindowManager对象
WindowManager wm = getSystemService(WINDOW_SERVICE);
//新建一个TextView
TextView tv_toast = new TextView(this);
tv_toast.setText("");
//获取布局参数对象并设置View的各种属性参数
WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();
mParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
mParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
//params.windowAnimations = com.android.internal.R.style.Animation_Toast;//这里可以做一个动画,可以不用
//设置View的类型为Toast
params.type = WindowManager.LayoutParams.TYPE_TOAST;
//添加到窗体
wm.addView(tv_toast,params);//当然,你不移除就肯定一直在界面上
//移除掉View
wm.removeView(tv_toast);//移除即会消失,可以通过hander或者Runnable去设定一定时间后消失掉这个自定义窗体。