Android之窗口浅析

Window

能看见的都是都是view,和view关联的就是window(包括activity,dialog,toast等等都是window)。Window 表示一个抽象的窗口概念, Window实际是看不见的。window包括应用window,子window,系统window三种。

windowmanager

windowmanager就是用来管理window的,对window的一切操作都是由windowmanager完成的。Windowmanager继承自Viewmanager,Viewmanager中定义了三个方法:

addView(View var1, LayoutParams var2)updateViewLayout(View var1, LayoutParams var2)removeView(View var1)

这三个方法就是就是window提供的主要功能,给window添加view、更新view、删除view。
另外,windowmanager还有一个内部类LayoutParams,通过该类可以设置大小、位置、类型、标记等参数。

使用

在窗体中可以通过getWindow获取到window窗口。

Window window = alertdialog.getWindow();
//设置自定义的view
window.setContentView(R.layout.doctortimedialog);
window.setGravity(Gravity.CENTER);
window.setBackgroundDrawableResource(R.color.transparent);

通过windowmanager添加

WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
WindowManager.LayoutParams wmp= new WindowManager.LayoutParams();
wmp.type = WindowManager.LayoutParams.TYPE_TOAST;
wmp.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
wmp.format = PixelFormat.RGBA_8888;
wmp.gravity = Gravity.CENTER;
wmp.width = WindowManager.LayoutParams.WRAP_CONTENT;
wmp.height = WindowManager.LayoutParams.WRAP_CONTENT;
manager.addView(view,mLayout);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值