WindowManager是Android应用中用来控制界面的,实在是非常好用
比如说遇到这种情况:
1、界面的特殊位置要画一个View,例如在右下角画一个消息提示窗口
2、某个View的上部覆盖另一个View,比如在LinearLayout中的View上面画另一个View,因为LinearLayout是线性排列的,所以是比较难操作的,要实现这个效果非常麻烦。
而如果使用WindowManager将会非常容易,只需三步
第一步、构造一个等待画出来的View
LayoutInflater inflater = LayoutInflater.from(this);
LinearLayout llAlert = inflater.inflater(R.layout.alert,null);
第二步、设置View的位置、大小等其他参数
WindowManager.LayoutParams p = new WindowManager.LayoutParams();
p.gravity = Gravity.RIGHT| Gravity.BOTTOM; //设置基准点
p.x = 0;
p.y = 0;
p.type = WindowManager.LayoutParams.TYPE_PHONE;
p.flags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
// |WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
p.width = 100;
p.height = 100;
第三部、把这个View添加到界面上
WindowManager wm = getWindowManager();
wm.addView(llAlert, p);