? ? ? ? 如果只想修改原生Dialog的部分屬性,那自定義Dialog就有點費事了。但是像修改透明度之類的屬性時,百度一波后我發(fā)現(xiàn)大家都這樣寫栏豺,
WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();
lp.alpha=1.0f;
dialog.getWindow().setAttributes(lp);
? ? ? 但是這樣寫有一個問題雇毫,我會發(fā)現(xiàn)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();
```
最后放下效果圖