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

时间:2015-04-28 10:00:39

标签: android android-dialog

在我的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();

并添加了图片以供我的问题参考。

enter image description here

2 个答案:

答案 0 :(得分:1)

而不是将其变为黑色,而不是在对话框中创建模糊和变暗的背景窗口在Android中可用。

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

我使用AlterDialog.Builder来创建我的对话框,但是这个方法适用于所有类型的对话框,只要你可以通过getWindow访问它。

@Override
public boolean supportsParameter(final MethodParameter parameter) {
    return parameter.hasParameterAnnotation(YourCustomAnnotation.class);
}

@Override
public Object resolveArgument(final MethodParameter parameter, final ModelAndViewContainer mavContainer,
                              final NativeWebRequest webRequest, final WebDataBinderFactory binderFactory) throws Exception {
    return ...; // a List
}

下面显示了添加模糊和消除背景变暗所需的代码(因为我认为当背景光线充足时模糊看起来更好)。

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行)。

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

答案 1 :(得分:0)

在初始化(显示)AlertDialog之前,您可以将父布局的可见性设置为 INVISIBLE GONE ,然后在解除AlertDialog之前将其设置为 VISIBLE