修改原生AlertDialog的背景透明度

        如果只想修改原生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的背景透明度)