如何自定义android AlertDialog文本属性

时间:2015-10-01 11:07:17

标签: android alertdialog

我有一个像这样的警告对话框  enter image description here

我正在使用默认警报对话框。我需要设置TitleContent和按钮的大小和颜色。现在我正在使用以下代码

AlertDialog.Builder alertDialogBuilder =new AlertDialog.Builder(new ContextThemeWrapper(context, R.style.AlertDialogCustom));

我也为此创建了一个样式资源

    <style name="AlertDialogCustom" parent="@android:style/Theme.Dialog">
    <item name="android:textColor">@color/medium_black</item>
    <item name="android:textSize">20sp</item>
    </style>

我可以使用

更改Title的颜色和大小
<item name="android:textColor">@color/medium_black</item>
<item name="android:textSize">20sp</item>

但它也适用于是/否按钮。我需要单独的字体颜色和大小3.这有可能吗?

5 个答案:

答案 0 :(得分:1)

如果您不想创建自定义对话框:

创建警告对话框后,在显示之前,您可以执行以下操作:

  final AlertDialog alertDialog = builder.create();
    alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
        @Override
        public void onShow(DialogInterface dialog) {
            Button yesButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
            Button noButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE);

            yesButton.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
            yesButton.setTypeface(/* "your type face" */);

        }
    });
    alertDialog.show();

答案 1 :(得分:1)

只需添加colorAccent属性即可。它会应用于按钮。

未来探险家的更多属性:
您可以制作这样的默认样式......

<style name="CustomDialogAlert" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="colorAccent">@color/accent_pink_a200</item> <!-- gets applied to positive/neutral/negative buttons -->
    <item name="android:textColor">@color/white</item>
    <item name="android:textColorPrimary">@color/white</item>
    <item name="android:textColorSecondary">@color/white</item> <!-- gets applied to the message text-->
    <item name="android:background">@color/primary_deepPurple_500</item>
    <item name="textColorAlertDialogListItem">@color/white</item> <!-- if the alert's got a list instead of a message -->
</style>

并在此基础应用主题中加入..

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
    <item name="alertDialogTheme">@style/CustomDialogAlert</item>
</style>

答案 2 :(得分:0)

您可以定义自己的自定义对话框并进行相应的设计。 请参阅此http://www.mkyong.com/android/android-custom-dialog-example/

答案 3 :(得分:0)

您可以使用此库自定义Dialogs

Material Dialogs

答案 4 :(得分:0)

使用html标签为您的文字添加样式。

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

            // set title
            alertDialogBuilder.setTitle( Html.fromHtml("<font size='3' color='#FF7F27'>Set IP Address</font>"));

            // set dialog message
            alertDialogBuilder
                    .setMessage(Html.fromHtml("<font size='3' color='red'>Click yes to exit!</font>"))
                    .setCancelable(false)
                    .setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,int id) {
                            // if this button is clicked, close
                            // current activity

                        }
                    })
                    .setNegativeButton("No", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            // if this button is clicked, just close
                            // the dialog box and do nothing
                            dialog.cancel();
                        }
                    });

            // create alert dialog
            AlertDialog alertDialog = alertDialogBuilder.create();

            // show it
            alertDialog.show();