是否可以在android中更改警报对话框的外部颜色?

是否可以在android中更改警报对话框的外部颜色?,android,android-dialog,Android,Android Dialog,在我的android应用程序中,我显示了一个警报对话框。我想将警报对话框的外部颜色更改为黑色。请告诉我任何一个有想法的人我如何才能做到这一点。 我显示警报对话框的代码是: AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(ctx, R.style.SetdartDialog)); builder.setView(factory.inflate(R.layout.alert_dialo

在我的android应用程序中,我显示了一个警报对话框。我想将警报对话框的外部颜色更改为黑色。请告诉我任何一个有想法的人我如何才能做到这一点。 我显示警报对话框的代码是:

AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(ctx, R.style.SetdartDialog));
    builder.setView(factory.inflate(R.layout.alert_dialog, null))
    .setIcon(R.drawable.icon)
    .setCancelable(true)
    .setMessage(R.string.check_wireless_settings)
    .setTitle(R.string.no_connection)
    .setPositiveButton(R.string.myes, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            ctx.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
        }
    })
    .setNegativeButton(R.string.mno, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            return;
        }
    })
    .setOnCancelListener(new DialogInterface.OnCancelListener() {
        public void onCancel(DialogInterface dialog) {
            return;
        }
    })
    .show();
并为我的问题添加了参考图像


在初始化(显示)AlertDialog之前,您可以将父布局的可见性设置为不可见消失,在解除AlertDialog之前,将其设置为可见,而不是将其设置为黑色,android系统中有内置的模糊和变暗背景窗口,可从dialog中选择

所以,在这里你可以使背景模糊

我正在使用AlterDialog.Builder创建对话框,但是如果您可以通过getWindow访问它,这个方法将适用于所有类型的对话框

AlertDialog.Builder dialog = new AlertDialog.Builder(WordCube.this)  
    .setTitle(WordCube.this.getResources().getString(R.string.app_name))  
    .setMessage(s)  
    .setIcon(R.drawable.logo)  
    .setPositiveButton(R.string.btn_close, null)  
    .show();  
下面显示了添加模糊和删除背景调暗所需的代码(因为我认为当背景照明良好时,模糊看起来更好)

模糊只是使用最后一行(第4行)创建的,该行为对话框设置了一个标志,告诉android我们希望此行下面的窗口模糊。为了实现变暗,我们需要检索对话框窗口的布局参数,将变暗量设置为零,使用setAttributes更新这些参数(第1-3行)


如有任何意见、问题或改进,请告诉我。

谢谢您的重播。在我的例子中,我使用的是视图的首选项,而不是视图的布局。所以我不能使它不可见,但我可以删除所有视图并添加所有视图。这将影响我的应用程序的性能。感谢您的重播。我需要避免在屏幕中填充对话框后显示背景内容,通过使用此选项,当您打开对话框时,您的背景活动不完全可见。它将被模糊所覆盖
WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();  
lp.dimAmount=0.0f;  
dialog.getWindow().setAttributes(lp);  
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);