Android 自定义AlertDialog 居中显示


 /**
     * 弹窗的一些配置
     * @param activity
     * @param dialog
     * @param canCancel  是否可以点击外部取掉
     * @param isBgDark  背景是否不变暗 0为不 1为是
     */
    public void showDialog(Activity activity, AlertDialog dialog, boolean canCancel, boolean isBgDark) {
        dialog.setCancelable(canCancel); //返回键不可取消
        dialog.setCanceledOnTouchOutside(canCancel); //点击外部不取消

        /*设置背景透明*/
        final Window window = alertDialog.getWindow();
        if (window != null) {
            window.setBackgroundDrawable(new ColorDrawable(0));
        }
        dialog.show();

        //以下代码需要在show函数之后

        //加载自己的布局
        WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
        //设置宽高,高度默认是自适应的,宽度根据屏幕宽度比例设置
        lp.width = getScreenWidth(activity) / 10 * 8;
        //这里设置居中
        lp.gravity = Gravity.CENTER;
        //背景不变暗
        lp.dimAmount = isBgDark ? 0.6f : 0f;
        dialog.getWindow().setAttributes(lp);
    }

posted @ 2021-02-01 11:33  FlowLiver  阅读(1559)  评论(0)    收藏  举报