Android Dialog坐标位置、布局文件、按键拦截

jopen 11年前

    Dialog myDialog = new Dialog(this);                     // setContentView可以设置View也可以是布局文件                myDialog.setContentView(R.layout.test_akey);                Window dialogWindow = myDialog.getWindow();                WindowManager.LayoutParams lp = dialogWindow.getAttributes();                dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP);                ////获取当前窗口                 WindowManager mWindowManager=(WindowManager)getApplication().getSystemService(getApplication().WINDOW_SERVICE);                  lp.x = 200; // X坐标                 lp.y = 200; // Y坐标(根据窗口大小,如,窗口高的一半mWindowManager.getDefaultDisplay().getHeight()/2)                        lp.width = WindowManager.LayoutParams.WRAP_CONTENT; // 宽度                lp.height = WindowManager.LayoutParams.WRAP_CONTENT; // 高度                lp.alpha = 0.8f; // 透明度                ////点击其他地方消失                myDialog.setCancelable(true);                dialogWindow.setAttributes(lp);                ////重写OnKeyListener,可以在此拦截按键                myDialog.setOnKeyListener(new OnKeyListener() {                                        @Override                    public boolean onKey(DialogInterface myDialog, int keyCode, KeyEvent event) {                        if (keyCode==KeyEvent.KEYCODE_BACK )                        {                //拦截返回键                         return true;                        }                        else                        return false;                    }                });                /////获取dialog中的控件               Button  mTest_Btn = (Button) myDialog.findViewById(R.id.test_btn);                         myDialog.show();//显示dialog                myDialog.dismiss();//关闭dialog