我知道如何将自定义字体设置为 *** 作栏.我只需要扩展SherlockFragmentActivity并覆盖setTitle,如下所示:
@OverrIDepublic voID setTitle(CharSequence Title) { String str = String.valueOf(Title); str = str.toupperCase(Locale.getDefault()); SpannableString s = new SpannableString(str); MetricAffectingSpan span = new MetricAffectingSpan() { @OverrIDe public voID updateMeasureState(TextPaint p) { p.setTypeface(FontManager.INSTANCE.getAppFont()); } @OverrIDe public voID updateDrawState(TextPaint tp) { tp.setTypeface(FontManager.INSTANCE.getAppFont()); } }; s.setSpan(span,s.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); getSupportActionbar().setTitle(s);}
但是,使用上下文 *** 作栏会使事情变得复杂.该库使用工厂返回上下文 *** 作栏,如下所示:
ActionMode mode = getSherlockActivity().startActionMode(mActionModeCallback);mode.setTitle("whatever");
我可以覆盖ActionMode,但lib不会返回它.
有任何想法吗?
最佳答案我觉得有点复杂……您需要创建一个VIEw,您将TextVIEw作为标题放置,为此TextVIEw设置所需的字体,并使用setCustomVIEw将视图放置为新字体.
我希望它对你有所帮助.
UPDATE
您是否尝试过创建自己的方法,如下所示:
public voID setActionModeTitle(CharSequence Title) { String str = String.valueOf(Title); str = str.toupperCase(Locale.getDefault()); SpannableString s = new SpannableString(str); MetricAffectingSpan span = new MetricAffectingSpan() { @OverrIDe public voID updateMeasureState(TextPaint p) { p.setTypeface(FontManager.INSTANCE.getAppFont()); } @OverrIDe public voID updateDrawState(TextPaint tp) { tp.setTypeface(FontManager.INSTANCE.getAppFont()); } }; s.setSpan(span,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); actionMode.setTitle(s);}
总结 以上是内存溢出为你收集整理的android – 如何将自定义字体设置为sherlock的上下文 *** 作栏?全部内容,希望文章能够帮你解决android – 如何将自定义字体设置为sherlock的上下文 *** 作栏?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)