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一分鐘後消失。