Как изменить заголовок Actionbar только изменить шрифт, текстовый формат, цвет текста - PullRequest
0 голосов
/ 03 февраля 2020

Я не знаю, как изменить только шрифт текста заголовка панели действий enter image description here

это изображение без шрифта следующее изображение шрифт изменить вместе изменить шрифт нижнего меню

я хочу изменить только шрифт текста actionbartitle

enter image description here

В результате я хочу изменить размер текста actionbartitle, textcolor

Я не знаю что трогать в моем коде

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/black_overlay</item> //배경
    <item name="colorPrimaryDark">#00000000</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowDrawsSystemBarBackgrounds">false</item>
    <item name="android:statusBarColor">#000000</item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:fitsSystemWindows">true</item>
    <item name="android:fontFamily">@font/godoroundedl</item>
</style>

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Вы можете сделать это с помощью пользовательского класса TypefaceSpan.

SpannableString s = new SpannableString("My Title");
s.setSpan(new TypefaceSpan(this, "MyTypeface.otf"), 0, s.length(),
    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

// Update the action bar title with the TypefaceSpan instance
ActionBar actionBar = getActionBar();
actionBar.setTitle(s);

Пользовательскому классу TypefaceSpan передается ваш контекст Activity и имя гарнитуры в каталоге assets / fonts. Он загружает файл и кэширует новый экземпляр гарнитуры в памяти. Полная реализация TypefaceSpan на удивление проста:

/**
 * Style a {@link Spannable} with a custom {@link Typeface}.
 * 
 * @author Tristan Waddington
 */
public class TypefaceSpan extends MetricAffectingSpan {
  /** An <code>LruCache</code> for previously loaded typefaces. */
private static LruCache<String, Typeface> sTypefaceCache =
        new LruCache<String, Typeface>(12);

private Typeface mTypeface;

/**
 * Load the {@link Typeface} and apply to a {@link Spannable}.
 */
public TypefaceSpan(Context context, String typefaceName) {
    mTypeface = sTypefaceCache.get(typefaceName);

    if (mTypeface == null) {
        mTypeface = Typeface.createFromAsset(context.getApplicationContext()
                .getAssets(), String.format("fonts/%s", typefaceName));

        // Cache the loaded Typeface
        sTypefaceCache.put(typefaceName, mTypeface);
    }
}

@Override
public void updateMeasureState(TextPaint p) {
    p.setTypeface(mTypeface);

    // Note: This flag is required for proper typeface rendering
    p.setFlags(p.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
}

@Override
public void updateDrawState(TextPaint tp) {
        tp.setTypeface(mTypeface);

        // Note: This flag is required for proper typeface rendering
        tp.setFlags(tp.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
    }
}
0 голосов
/ 03 февраля 2020

Вы можете сделать это, используя Java

ActionBar actionBar = getActionBar();
actionBar.setTitle(Html.fromHtml("<small>YOUR TITLE</small>"));

или добавить это в свой стиль

<item name="android:textSize">15sp</item>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...