如何通过样式将自定义字体样式/系列应用于整个应用程序中的警报对话框

时间:2018-12-19 12:46:10

标签: android alertdialog android-theme

我想在整个应用程序中更改警报对话框的字体。如何通过XML(样式)实现它。请为我提供一些解决方案。谢谢

2 个答案:

答案 0 :(得分:0)

您需要在 build.gradle 中添加书法,有关更多详细信息,请参考Calligraphy

CalligraphyConfig.initDefault(CalligraphyConfig.Builder()
            .setDefaultFontPath("fonts/roboto_bold.ttf")
            .setFontAttrId(R.attr.fontPath)
            .build()

在您的应用程序文件中使用以下代码:

progressDialog = ProgressDialog(ContextThemeWrapper(context, R.style.AlertProgressDialogCustom))

使用以下代码或在任何要创建新对话框的地方创建对话框的单个实例。

<style name="DialogTextButton" parent="@android:style/TextAppearance.Holo.Medium">
    <item name="fontPath">fonts/open_sans.ttf</item>
    <item name="android:textColor">@color/black</item>
</style>

<style name="AlertProgressDialogCustom" parent="@android:style/Theme.Material.Light.Dialog">
    <item name="android:textAppearanceMedium">@style/DialogTextButton</item>
    <item name="android:subtitleTextAppearance">@style/DialogTextButton</item>
    <item name="android:titleTextAppearance">@style/DialogTextButton</item>
    <item name="android:textColor">@color/black</item>
    <item name="android:textColorPrimary">@color/black</item>
    <item name="android:colorAccent">@color/btn_picker_color</item>
    <item name="android:progressTint">@color/btn_picker_color</item>
    <item name="android:textAppearance">@style/DialogTextButton</item>
</style>

style.xml

中放置以下样式
{{1}}

让我知道您是否仍然面临问题。

答案 1 :(得分:0)

遵循以下方法,

 public void createDialog()
    {
            Dialog dialog = new Dialog(context);            
            dialog.setContentView(R.layout.your_dialog);

            final FontChangeCrawler fontChanger = new FontChangeCrawler(context.getAssets(), Constant.arialRoundedFont);
            fontChanger.replaceFonts((ViewGroup) dialog.findViewById(android.R.id.content));

            dialog.setCancelable(false);
            dialog.show();
    }

->通过在Util类中创建此方法并将其全局使用,将其应用于所有对话框。 这将为您工作。