# Android-BackgroundBlurPopupWindow **Repository Path**: bakerj/Android-BackgroundBlurPopupWindow ## Basic Information - **Project Name**: Android-BackgroundBlurPopupWindow - **Description**: 背景虚化的PopupWindow,可指定虚化区域 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: https://github.com/BakerJQ/Android-BackgroundBlurPopupWindow - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-07-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BackgroundBlurPopupWindow 背景可变暗和虚化的PopupWindow,可指定虚化区域 ## Screenshot ![](https://raw.githubusercontent.com/BakerJQ/Android-BackgroundBlurPopupWindow/master/Screenshots/show.gif) ## 如何使用 ### 初始化 向系统PopupWindow初始化方式一样 ```java mPopupWindow = new BackgroundBlurPopupWindow(mTextView, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, this, true); mPopupWindow.setFocusable(true); mPopupWindow.setBackgroundDrawable(new BitmapDrawable()); mPopupWindow.setAnimationStyle(android.R.style.Animation_Dialog); ``` #### 设置虚化和变暗区域 ```java case R.id.top: mPopupWindow.setBlurRadius(BackgroundBlurPopupWindow.DEFAULT_BLUR_RADIUS); mPopupWindow.setDownScaleFactor(BackgroundBlurPopupWindow .DEFAULT_BLUR_DOWN_SCALE_FACTOR); mTextView.setText("This is a popupwindow\n\nblur & dark on bottom"); mPopupWindow.setDarkColor(Color.parseColor("#a0000000")); mPopupWindow.resetDarkPosition(); mPopupWindow.darkBelow(mBtnTop); mPopupWindow.showAsDropDown(mBtnTop, mBtnTop.getRight() / 2, 0); break; case R.id.left: mPopupWindow.setBlurRadius(BackgroundBlurPopupWindow.DEFAULT_BLUR_RADIUS); mPopupWindow.setDownScaleFactor(BackgroundBlurPopupWindow .DEFAULT_BLUR_DOWN_SCALE_FACTOR); mTextView.setText("This is a popupwindow\n\nblur & dark on right"); mPopupWindow.setDarkColor(Color.parseColor("#a0000000")); mPopupWindow.resetDarkPosition(); mPopupWindow.darkRightOf(mBtnLeft); mPopupWindow.showAtLocation(mBtnLeft, Gravity.CENTER_VERTICAL | Gravity.LEFT, 0, 0); break; case R.id.right: mPopupWindow.setBlurRadius(BackgroundBlurPopupWindow.DEFAULT_BLUR_RADIUS); mPopupWindow.setDownScaleFactor(BackgroundBlurPopupWindow .DEFAULT_BLUR_DOWN_SCALE_FACTOR); mTextView.setText("This is a popupwindow\n\nblur & dark on left"); mPopupWindow.setDarkColor(Color.parseColor("#a0000088")); mPopupWindow.resetDarkPosition(); mPopupWindow.drakLeftOf(mBtnRight); mPopupWindow.showAtLocation(mBtnRight, Gravity.CENTER_VERTICAL | Gravity.RIGHT, 0, 0); break; case R.id.bottom: mPopupWindow.setBlurRadius(BackgroundBlurPopupWindow.DEFAULT_BLUR_RADIUS); mPopupWindow.setDownScaleFactor(BackgroundBlurPopupWindow .DEFAULT_BLUR_DOWN_SCALE_FACTOR); mTextView.setText("This is a popupwindow\n\nblur & dark on top"); mPopupWindow.setDarkColor(Color.parseColor("#a0008800")); mPopupWindow.resetDarkPosition(); mPopupWindow.darkAbove(mBtnBottom); mPopupWindow.showAtLocation(mBtnBottom, Gravity.CENTER_HORIZONTAL, 0, mBtnBottom.getTop()); break; case R.id.center: mPopupWindow.setBlurRadius(4); mPopupWindow.setDownScaleFactor(1.5f); mTextView.setText("This is a popupwindow\n\nblur & dark in center"); mPopupWindow.setDarkColor(Color.parseColor("#a0880000")); mPopupWindow.resetDarkPosition(); mPopupWindow.drakLeftOf(mBtnRight); mPopupWindow.darkRightOf(mBtnLeft); mPopupWindow.darkAbove(mBtnBottom); mPopupWindow.darkBelow(mBtnTop); mPopupWindow.showAtLocation(mBtnCenter, Gravity.CENTER, 0, 0); break; case R.id.all: mPopupWindow.setBlurRadius(10); mPopupWindow.setDownScaleFactor(1.2f); mTextView.setText("This is a popupwindow\n\nblur & dark fill all"); mPopupWindow.setDarkColor(Color.parseColor("#a0000000")); mPopupWindow.resetDarkPosition(); mPopupWindow.darkFillScreen(); mPopupWindow.showAtLocation(mBtnAll, Gravity.CENTER, 0, 0); break; case R.id.view: mPopupWindow.setBlurRadius(BackgroundBlurPopupWindow.DEFAULT_BLUR_RADIUS); mPopupWindow.setDownScaleFactor(BackgroundBlurPopupWindow .DEFAULT_BLUR_DOWN_SCALE_FACTOR); mTextView.setText("This is a popupwindow\n\nblur & dark fill view"); mPopupWindow.setDarkColor(Color.parseColor("#a0000000")); mPopupWindow.resetDarkPosition(); mPopupWindow.drakFillView(mBtnView); mPopupWindow.showAtLocation(mBtnView, Gravity.CENTER, 0, 0); break; ```