2015-04-14 4 views
1

Я хочу получить текстовое изображение субтитров на панели инструментов Android, чтобы изменить его шрифт. На самом деле я делаю это с названием, получить его на этом пути:Как установить пользовательский шрифт в подзаголовок панели инструментов Android?

Field f = toolbar.getClass().getDeclaredField("mTitleTextView"); 
f.setAccessible(true); 
titleTextView = (TextView) f.get(toolbar); 

Я попытался с тем же кодом, но при попытке получить «mSubtitleTextView», но это не решение.

Спасибо!

+0

Попробуйте его с помощью TypeFace –

+0

Это то, что я пытаюсь, но мне нужно текстовое окно. – Mikel

+0

. Где название на панели действий? –

ответ

1

Определенно не лучший способ, но в крайнем случае это будет работать. Вам нужно будет выяснить способ реализовать 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); 
} 
+0

, похоже, что это не работает с заголовком, вы тоже с отражением? –

2

Вы можете получить TextView субтитров, как это:

View subTitleView = toolbar.getChildAt(1); 

Если вы не добавлять вида на панель инструментов, его структура по умолчанию:

[0] - (TextView) title 
[1] - (TextView) subtitle 
[2] - (ActionMenuView) menu 

Надеется, что это помогает !

Смежные вопросы