void showDemo(View view, String text){
commomDialog.setListener(new CommomDialog.OnCloseListener() {
@Override
public void onClick(Dialog dialog, boolean confirm) {
dialog.dismiss();
}
});
commomDialog.setContent(text);
commomDialog.setTitle("提示信息");
commomDialog.getWindow();
commomDialog.setCanceledOnTouchOutside(false);
//获取当前Activity所在的窗体
Window window = commomDialog.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();
//获取通知栏高度 重要的在这,获取到通知栏高度
int notificationBar = Resources.getSystem().getDimensionPixelSize(Resources.getSystem().getIdentifier("status_bar_height", "dimen", "android"));
//获取控件 textview 的绝对坐标,( y 轴坐标是控件上部到屏幕最顶部(不包括控件本身))
//location [0] 为x绝对坐标;location [1] 为y绝对坐标
int[] location = new int[2] ;
//获取在当前窗体内的绝对坐标
view.getLocationInWindow(location);
//获取在整个屏幕内的绝对坐标
view.getLocationOnScreen(location);
//对 dialog 设置 x 轴坐标
wlp.x= (int) (location[0]-(view.getWidth()/1.5));
//对dialog设置y轴坐标
wlp.y = location [1] + view.getHeight() - notificationBar;
wlp.gravity = Gravity.TOP;
wlp.width = 400;
wlp.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(wlp);
commomDialog.show();
}
弹出框创建我就不贴了,该方法传入要显示的UI控件,比如LinearLayout.就会显示在该控件下面。
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if(commomDialog!=null&&commomDialog.isShowing()){
commomDialog.dismiss();
}
}
}, 1000*60);
上面代码是定时器代码,指定dialog一分钟后消失。