import android.app.Activity;
import android.graphics.drawable.ColorDrawable;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.PopupWindow;
/**
* PopupWindow
* Created by liyingchun on 2016/10/22.
*/
public class PopupWindowUtil {
/**
* 初始化对话框
*
* @param view 自定义布局
* @param activity 类
* @return 对话框
*/
public static PopupWindow initPopupWindow(View view, final Activity activity) {
PopupWindow popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true);//不能在没有焦点的时候使用
popupWindow.setBackgroundDrawable(new ColorDrawable(1));//必须要设置背景色
//设置对话框消失时,背景变亮
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
backgroundAlpha(activity, 1f);//取消暗背景
}
});
return popupWindow;
}
/**
* 显示对话框
*
* @param popupWindow 对话框
* @param parentView 显示父控件
* @param activity 类
*/
public static void showPopupWindow(PopupWindow popupWindow, View parentView, Activity activity) {
//设置背景变暗
backgroundAlpha(activity, 0.5f);
popupWindow.showAtLocation(parentView, Gravity.BOTTOM, 0, 0);
}
/**
* 设置添加屏幕的背景透明度
*
* @param bgAlpha //0.0-1.0 越接近1.0越亮
*/
public static void backgroundAlpha(Activity context, float bgAlpha) {
WindowManager.LayoutParams lp = context.getWindow().getAttributes();
lp.alpha = bgAlpha;
context.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
context.getWindow().setAttributes(lp);
}
}
PoppupWindow封装
最新推荐文章于 2024-03-28 05:45:11 发布