Jak zmienić rozmiar tekstu paska narzędzi?

94

Chcę zmienić rozmiar tekstu w Toolbar. Ponieważ w mojej aplikacji Toolbartekst ma różne rozmiary zarówno w trybie poziomym, jak i pionowym.

Czy można zmienić rozmiar tekstu w Toolbar?

Apurva
źródło

Odpowiedzi:

285

Zastosowanie app:titleTextAppearance:

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    android:id="@+id/toolbar"
    app:titleTextAppearance="@style/Toolbar.TitleText" />

i nadpisz domyślny rozmiar tytułu w stylu niestandardowym:

<style name="Toolbar.TitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:textSize">18sp</item>
</style>

Wynik:

Zrzut ekranu

Vukašin Manojlović
źródło
Działa, dziękuję za rozwiązanie! Zaoszczędziłem dużo czasu!
hetsgandhi
23

na przykład to twój pasek narzędzi

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:gravity="center"
    android:minHeight="?attr/actionBarSize"
    app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />

możesz po prostu dodać ten widok do tego

    app:titleTextAppearance="@style/yourstyle"

style.xml

  <style name="yourstyle" parent="@style/Base.TextAppearance.AppCompat.Title">
    <item name="android:textSize">20sp</item>
</style>

tak...

massaimara98
źródło
z jakiegoś powodu android:gravity="center"nie ustawia dla mnie wyśrodkowanego wyrównania ....: - /
Mobigital
5

Możesz dodać TextViewdo paska narzędzi i dostosować, jak chcesz:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent">
    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textSize="25sp"/>
</android.support.v7.widget.Toolbar>
Simas
źródło
4
Wydaje się, że jest to odpowiedź, która pasuje do aplikacji obsługujących API <21. tytułTextAppearance jest fajnym rozwiązaniem, ale działa tylko w API 21 i nowszych. Jest jednak kilka zawiłości, z którymi musimy się uporać, stosując to rozwiązanie. Jeśli używasz SearchView, rozszerzona wersja widoku nie zostanie rozciągnięta do lewego końca. Zamiast tego będzie rozciągany tylko do prawej krawędzi nowo dodanego widoku tekstu tytułu. Będziesz więc musiał tam dokonać pewnych dostosowań, ale znowu jest to szczególny przypadek. W ogólnym sensie jest to dobre rozwiązanie dla każdej wersji platformy.
Deepak GM
4

[Optional steps 1 & 2)

  1. Umieść plik czcionki w folderze „Project / app / src / main / asset / fonts /”.

Następnie utwórz obiekt Typeface z pliku czcionki jako:

Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/font_name.ttf");
  1. Teraz pobierz element podrzędny (widok tekstu tytułu paska narzędzi) z istniejącego paska narzędzi, domyślnego paska narzędzi i przekaż obiekt kroju pisma, który utworzyliśmy powyżej.
((TextView) toolbar.getChildAt(0)).setTypeface(typeFace); // set custom typeface - font
  1. Na koniec zmień rozmiar tekstu w widoku tekstu tytułu paska narzędzi
((TextView) toolbar.getChildAt(0)).setTextSize(30); // set title font size
OMi Shah
źródło
2
Witamy w SO! Dodaj opis na poparcie swojej odpowiedzi.
Mahib
1
ta odpowiedź pojawiła się w postach niskiej jakości w SO .... Czy możesz dodać komentarz do swojej odpowiedzi? Wyjaśnij swoją logikę i krótko skomentuj, do czego służy Twój kod. Pomoże to OP, ale posłuży również jako komentarz dla przyszłych użytkowników
Ram Ghadiyaram,
Jeśli masz ikonę nawigacji, powinieneś użyć getChildAt (1) :)
Gabor
3

Spróbuj tego w onCreate:

android.support.v7.app.ActionBar actionbar = getSupportActionBar();
TextView textview = new TextView(MainActivity.this);
RelativeLayout.LayoutParams layoutparams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

textview.setLayoutParams(layoutparams);
textview.setText(getString(R.string.your_string));
textview.setTextColor(Color.WHITE);
textview.setTextSize(18);

actionbar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionbar.setCustomView(textview);

To pochodzi z Android-Examples.com .

MorZa
źródło