美文网首页
修改原生AlertDialog的背景透明度

修改原生AlertDialog的背景透明度

作者: SleepWalkerLj | 来源:发表于2019-01-20 14:43 被阅读0次

            如果只想修改原生Dialog的部分属性,那自定义Dialog就有点费事了。但是像修改透明度之类的属性时,百度一波后我发现大家都这样写,

    WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();

    lp.alpha=1.0f;

    dialog.getWindow().setAttributes(lp);


          但是这样写有一个问题,我会发现getWindow的方法调用不了,这个原因和Builder有关,结合Android浅谈Builder模式 - 简书,下面放上可以用的代码:

    ```

    AlertDialog dialog=new AlertDialog.Builder(getContext(),AlertDialog.THEME_HOLO_DARK).create();

    //修改透明度

    WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();

    lp.alpha=0.7f;

    dialog.getWindow().setAttributes(lp);

    dialog.setIcon(R.drawable.icon_1);

    dialog.setTitle("小车账户充值");

    dialog.setMessage("在"+LoadingDialog.getTime()+" 将要给一号小车充值44元");

    dialog.setButton(DialogInterface.BUTTON1, "确定", new DialogInterface.OnClickListener() {

    @Override

                    public void onClick(DialogInterface dialogInterface, int i) {

    }

    });

                dialog.setButton(DialogInterface.BUTTON2, "忽略", new DialogInterface.OnClickListener() {

    @Override

                    public void onClick(DialogInterface dialogInterface, int i) {

    }

    });

                dialog.setButton(DialogInterface.BUTTON3, "取消", new DialogInterface.OnClickListener() {

    @Override

                    public void onClick(DialogInterface dialogInterface, int i) {

    }

    });

                dialog.show();

    ```

    最后放下效果图


    相关文章

      网友评论

          本文标题:修改原生AlertDialog的背景透明度

          本文链接:https://www.haomeiwen.com/subject/oruxjqtx.html