Android---悬浮框(PopupWindow)的弹出及屏幕变为半透明

来源:互联网 发布:开淘宝用什么电脑配置 编辑:程序博客网 时间:2024/05/16 01:56

先来说PopupWindow窗口的弹出,设计的重要类有,WindowManager(Android的窗口机制基类)和PopupWindow(悬浮框)

代码如下:

public void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.headline_reback://返回键Intent intent = getIntent();setResult(0);finish();overridePendingTransition(R.anim.left_in,R.anim.right_out);break;case R.id.qr_code://点击二维码弹出LayoutInflater inflater = this.getLayoutInflater();LayoutInflater inflater2 = this.getLayoutInflater();//得到界面视图View currean_View = inflater.inflate(R.layout.activity_about_self, null);//得到要弹出的界面视图View view = inflater2.inflate(R.layout.qrcode_share, null);WindowManager windowManager = getWindowManager();int width = windowManager.getDefaultDisplay().getWidth();int heigth = windowManager.getDefaultDisplay().getHeight();Log.i("width", width+"");Log.i("height", heigth+"");PopupWindow popupWindow = new PopupWindow(view,(int)(width*0.8),(int)(heigth*0.5));popupWindow.setFocusable(true);popupWindow.setOutsideTouchable(true);popupWindow.setBackgroundDrawable(new BitmapDrawable());//显示在屏幕中央popupWindow.showAtLocation(currean_View, Gravity.CENTER, 0, 40);//popupWindow弹出后屏幕半透明BackgroudAlpha((float)0.5);//弹出窗口关闭事件popupWindow.setOnDismissListener(new popupwindowdismisslistener());break;default:break;}}//设置屏幕背景透明度private void BackgroudAlpha(float alpha) {// TODO Auto-generated method stubWindowManager.LayoutParams l = this.getWindow().getAttributes();l.alpha = alpha;getWindow().setAttributes(l);}//点击其他部分popwindow消失时,屏幕恢复透明度class popupwindowdismisslistener implements PopupWindow.OnDismissListener{@Overridepublic void onDismiss() {// TODO Auto-generated method stubBackgroudAlpha((float)1);}}


0 0