【发布时间】:2018-12-19 12:46:10
【问题描述】:
我想更改整个应用程序中警报对话框的字体。如何通过 XML(styles) 来实现。请帮我解决一下。谢谢
【问题讨论】:
-
请发布您的 XML。
标签: android android-alertdialog android-theme
我想更改整个应用程序中警报对话框的字体。如何通过 XML(styles) 来实现。请帮我解决一下。谢谢
【问题讨论】:
标签: android android-alertdialog android-theme
按照下面的方法,
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 类中创建此方法并在全局范围内使用它,将此方法应用于所有对话框。 这对你有用。
【讨论】:
您需要在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>
如果您仍然遇到问题,请告诉我。
【讨论】: