如何将自定义字体设置为 android 工具栏的字幕?
Posted
技术标签:
【中文标题】如何将自定义字体设置为 android 工具栏的字幕?【英文标题】:How to set custom font to android toolbar's subtitle? 【发布时间】:2015-04-14 16:44:10 【问题描述】:我想在 android 的工具栏中获取字幕的 textview 以更改它的字体。其实我是用标题做的,这样写的:
Field f = toolbar.getClass().getDeclaredField("mTitleTextView");
f.setAccessible(true);
titleTextView = (TextView) f.get(toolbar);
我尝试使用相同的代码,但尝试获取“mSubtitleTextView”,但这不是解决方案。
谢谢!!
【问题讨论】:
用字体试试 这就是我正在尝试的,但我需要文本视图 标题在哪里,在操作栏中? 我用上面的代码搞定了 那么现在你想改变titleTextView的字体吗? 【参考方案1】:你可以像这样获取字幕TextView:
View subTitleView = toolbar.getChildAt(1);
如果不给工具栏添加任何视图,他的默认结构是:
[0] - (TextView) title
[1] - (TextView) subtitle
[2] - (ActionMenuView) menu
希望对你有帮助!
【讨论】:
【参考方案2】:绝对不是最好的方法,但在紧要关头这会奏效。不过,您必须想办法实现myTypefaceSpan
;我正在使用Calligraphy,所以它对我来说很好地联系在一起。
CalligraphyTypefaceSpan myTypefaceSpan = new CalligraphyTypefaceSpan(
TypefaceUtils.load(this.getAssets(), "fonts/custom_font.ttf"));
public static void setToolbarSubtitle(String subtitle, Context context)
SpannableStringBuilder sBuilder = new SpannableStringBuilder();
sBuilder.append(subtitle);
sBuilder.setSpan(MainActivity.myTypefaceSpan, 0, sBuilder.length(),
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
((MainActivity)context).getSupportActionBar().setSubtitle(sBuilder);
【讨论】:
这似乎不适用于标题,您是否也在使用反射?以上是关于如何将自定义字体设置为 android 工具栏的字幕?的主要内容,如果未能解决你的问题,请参考以下文章