最近研究了下dialog'和popupwindow,它们都能在当前界面弹出一个窗口,外观上的区别是一dialog弹出后背景会失去焦点(背景变暗),popupwindow则默认不会。
使用的时候也有些区别。
一 dialog
1 常用的dialog 应该是v7包下的alertdialog 了,通过内部类builder设置创建一个对话框实例。
默认的对话框有如下特点:
1 width 大小和屏幕宽度差不多
2 高度 基本上是包裹内容的
3 显示在屏幕中间 弹出后获得焦点 北京变灰
如果想要定义对话框的大小则需要通过window 的属性来设置
2 其他的dialog 在创建的时候会默认的添加一个头部视图,没有内容则会空出一片地方,alertdialog则不会。
WindowManager.LayoutParams lp = mDialog.getWindow().getAttributes(); // lp.alpha = 0.3f;//透明度 // lp.width = 300;//宽高,可以指定具体的值,也可以根据屏幕的宽高设定百分比 // lp.height = 200; // mDialog.getWindow().setAttributes(lp); //按照屏幕百分比来设置大小