¿Cómo cambiar el tamaño del texto de la barra de herramientas?

92

Quiero cambiar el tamaño del texto en Toolbar. Porque en mi aplicación, el Toolbartexto tiene diferentes tamaños tanto para el modo horizontal como vertical.

¿Es posible cambiar el tamaño del texto del texto en Toolbar?

Apurva
fuente

Respuestas:

283

Utilizar 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" />

y anula el tamaño del título predeterminado en un estilo personalizado:

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

Resultado:

Captura de pantalla

Vukašin Manojlović
fuente
¡Funciona, gracias por la solución! ¡Ahorré mucho de mi tiempo!
hetsgandhi
23

por ejemplo, esta es tu barra de herramientas

<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" />

puede simplemente agregar esta vista esto

    app:titleTextAppearance="@style/yourstyle"

style.xml

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

como eso...

massaimara98
fuente
por alguna razón android:gravity="center"no establece la alineación centrada para mí ....: - /
Mobigital
5

Puede agregar un TextViewa su barra de herramientas y personalizarlo como desee:

<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
fuente
4
Esta parece ser una respuesta que se adapta a las aplicaciones que admiten API <21. El titleTextAppearance es una buena solución, pero solo funciona con API 21 y superior. Sin embargo, hay algunas complejidades con las que debemos lidiar con esta solución. Si está utilizando SearchView, la versión ampliada de la vista no se extenderá hasta el extremo izquierdo. En su lugar, solo se extenderá hasta el borde derecho de la vista de texto del título recién agregada. Por lo tanto, tendrá que hacer algunas personalizaciones allí, pero nuevamente, este es un caso específico. En general, esta es una buena solución para cualquier versión de plataforma.
Deepak GM
3

Prueba esto en 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);

Esto está tomado de Android-Examples.com .

MorZa
fuente
3

[Optional steps 1 & 2)

  1. Coloque su archivo de fuente en la carpeta "Proyecto / app / src / main / assets / fonts /".

Luego crea un objeto Tipo de letra a partir del archivo de fuente como:

Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/font_name.ttf");
  1. Ahora, obtenga el elemento secundario (vista de texto del título de la barra de herramientas) de la barra de herramientas existente, la barra de herramientas predeterminada y pase el objeto tipográfico que creamos anteriormente.
((TextView) toolbar.getChildAt(0)).setTypeface(typeFace); // set custom typeface - font
  1. Finalmente, cambie el tamaño del texto de la vista de texto del título de la barra de herramientas
((TextView) toolbar.getChildAt(0)).setTextSize(30); // set title font size
OMi Shah
fuente
2
¡Bienvenido a SO! Agregue una descripción para respaldar su respuesta.
Mahib
1
esta respuesta llegó en publicaciones de baja calidad en SO .... ¿Podría agregar algún comentario a su respuesta? Explique su lógica y haga un pequeño comentario sobre lo que pretende hacer su código. Esto ayudará al OP, pero también servirá como comentario para futuros usuarios
Ram Ghadiyaram
Si tiene un ícono de navegación, debe usar getChildAt (1) :)
Gabor