【问题标题】:How to apply custom font style/ family to alert dialogs in entire app through styles如何通过样式将自定义字体样式/系列应用于整个应用程序中的警报对话框
【发布时间】:2018-12-19 12:46:10
【问题描述】:

我想更改整个应用程序中警报对话框的字体。如何通过 XML(styles) 来实现。请帮我解决一下。谢谢

【问题讨论】:

  • 请发布您的 XML。

标签: android android-alertdialog android-theme


【解决方案1】:

按照下面的方法,

 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 类中创建此方法并在全局范围内使用它,将此方法应用于所有对话框。 这对你有用。

【讨论】:

    【解决方案2】:

    您需要在build.gradle中添加书法,详情请参考Calligraphy

    dependencies {
        compile 'uk.co.chrisjenx:calligraphy:2.3.0'
    }
    

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

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

    使用下面的代码或创建新对话框的地方创建单个对话框实例。

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

    将样式放在style.xml

    <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>
    

    如果您仍然遇到问题,请告诉我。

    【讨论】:

    • 属性字体路径未找到
    猜你喜欢
    • 2020-03-06
    • 2019-03-15
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多