赞
踩
- 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一分钟后消失。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。