为警报对话框项设置自定义字体的字体
Set typeface with custom font for alert dialog items
我正在这样创建一个警告对话框:
AlertDialog.Builder alertDialog = new AlertDialog.Builder(view.getContext());
alertDialog.setCustomTitle(null);
alertDialog.setItems(getAllListNames(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//Doing something awesome...
}
});
我知道它用我的项目创建了一个列表视图,我想为它们设置一个带有自定义字体的字体,并为每个列表项目设置最大字符数,我该怎么做?
您必须创建自定义主题。这是官方指南:http://developer.android.com/guide/topics/ui/themes.html :)
像这样的东西(在 style.xml
文件中):
<style name="CustomFontTheme" parent="android:Theme.Light">
<item name="android:textViewStyle">@style/MyTextViewStyle</item>
<item name="android:buttonStyle">@style/MyButtonStyle</item>
</style>
<style name="MyTextViewStyle" parent="android:Widget.TextView">
<item name="android:fontFamily">sans-serif-light</item>
</style>
<style name="MyButtonStyle" parent="android:Widget.Holo.Button">
<item name="android:fontFamily">sans-serif-light</item>
</style>
然后当您创建对话框时,您可以这样做:
Context context = new ContextThemeWrapper(view.getContext(), R.style.CustomFontTheme)
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
其中 R.style.CustomFontTheme
是您创建的它们的 ID。
更新:
好的,要添加您的自定义字体,您可以遵循以下要点:
https://gist.github.com/artem-zinnatullin/7749076
关键是在应用程序启动时覆盖给定的字体,如下所示:
TypefaceUtil.overrideFont(getApplicationContext(), "AWESOME-FONT", "fonts/Awesome-Font.ttf");
要点具有该方法的实现。
所以主题样式现在应该是这样的:
<style name="MyTextViewStyle" parent="android:Widget.TextView">
<item name="android:fontFamily">awesome-font</item>
</style>
<style name="MyButtonStyle" parent="android:Widget.Holo.Button">
<item name="android:fontFamily">awesome-font</item>
</style>
我正在这样创建一个警告对话框:
AlertDialog.Builder alertDialog = new AlertDialog.Builder(view.getContext());
alertDialog.setCustomTitle(null);
alertDialog.setItems(getAllListNames(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//Doing something awesome...
}
});
我知道它用我的项目创建了一个列表视图,我想为它们设置一个带有自定义字体的字体,并为每个列表项目设置最大字符数,我该怎么做?
您必须创建自定义主题。这是官方指南:http://developer.android.com/guide/topics/ui/themes.html :)
像这样的东西(在 style.xml
文件中):
<style name="CustomFontTheme" parent="android:Theme.Light">
<item name="android:textViewStyle">@style/MyTextViewStyle</item>
<item name="android:buttonStyle">@style/MyButtonStyle</item>
</style>
<style name="MyTextViewStyle" parent="android:Widget.TextView">
<item name="android:fontFamily">sans-serif-light</item>
</style>
<style name="MyButtonStyle" parent="android:Widget.Holo.Button">
<item name="android:fontFamily">sans-serif-light</item>
</style>
然后当您创建对话框时,您可以这样做:
Context context = new ContextThemeWrapper(view.getContext(), R.style.CustomFontTheme)
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
其中 R.style.CustomFontTheme
是您创建的它们的 ID。
更新:
好的,要添加您的自定义字体,您可以遵循以下要点: https://gist.github.com/artem-zinnatullin/7749076
关键是在应用程序启动时覆盖给定的字体,如下所示:
TypefaceUtil.overrideFont(getApplicationContext(), "AWESOME-FONT", "fonts/Awesome-Font.ttf");
要点具有该方法的实现。
所以主题样式现在应该是这样的:
<style name="MyTextViewStyle" parent="android:Widget.TextView">
<item name="android:fontFamily">awesome-font</item>
</style>
<style name="MyButtonStyle" parent="android:Widget.Holo.Button">
<item name="android:fontFamily">awesome-font</item>
</style>