¿Cómo cambiar la propiedad y el tamaño de CollapsingToolbarLayout?

Quiero cambiar el tamaño de fuente de CollapsingToolbarLayout y su tipografía. ¿Cómo puedo lograr eso?

Introduzca aquí la descripción de la imagen

Básicamente, puede establecer TextAppearance en su xml.

 <android.support.design.widget.AppBarLayout android:id="@+id/appbarlyout_commonview_header" android:layout_width="match_parent" android:layout_height="@dimen/appbarlayout_height" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapse_commonview_header" android:layout_width="match_parent" android:layout_height="match_parent" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginStart="72dp" app:layout_scrollFlags="scroll|exitUntilCollapsed" app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Title"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" /> <android.support.v7.widget.Toolbar android:id="@+id/tlbr_commonview_mainmenu" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> 

Desde el código anterior has visto esta parte

 app:expandedTitleTextAppearance="@style/TextAppearance.AppCompat.Title" 

Específicamente la última parte

 .Title 

Introduzca aquí la descripción de la imagen

Si usted recuerda, esto está documentado en Especificaciones de Diseño de Material en la sección de Typhography. Puede cambiarlo al estilo de TextAppearance incorporado disponible.

Introduzca aquí la descripción de la imagen

El segundo paso es utilizar la Roboto Font que recomienda Google. El TextAppearance no incluye estas fuentes por lo que tenemos que añadir manualmente, por suerte hay un Gradle Base Robot Font (s) que es ofrecido por Typer . Antes de usar la fuente necesitamos agregar una nueva dependencia en nuestro build.gradle .

 dependencies { compile 'com.elmargomez.typer:typerlib:1.0.0' } 

Y establecer el tipo de letra en nuestro CollapsingToolbar

 Typeface font = Typer.set(yourContext).getFont(Font.ROBOTO_MEDIUM); collapsingToolbar.setExpandedTitleTypeface(font); 

Puede utilizar los nuevos métodos públicos en CollapsingToolbarLayout para establecer el tipo de letra para el título expandido y contraído, así:

 final Typeface tf = Typeface.createFromAsset(context.getAssets(), "fonts/FrutigerLTStd-Light.otf"); collapsingToolbar.setCollapsedTitleTypeface(tf); collapsingToolbar.setExpandedTitleTypeface(tf); 

Esto parece haber sido agregado en la biblioteca de soporte de diseño 23.1.0, y es una adición muy bienvenida.

Puedes hacer algo como esto:

 mCollapsingToolbarLayout.setTitle(getTitle()); mCollapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.ExpandedAppBar); mCollapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.CollapsedAppBar); 

El estilo de vista de texto correspondiente podría ser: 28sp # 000 bold

 <style name="CollapsedAppBar" parent="@android:style/TextAppearance.Medium"> <item name="android:textSize">24sp</item> <item name="android:textColor">@color/white</item> <item name="android:textStyle">normal</item> </style> 

También ver aquí para referencia.

Parece que tengo solución:

 private void makeCollapsingToolbarLayoutLooksGood(CollapsingToolbarLayout collapsingToolbarLayout) { try { final Field field = collapsingToolbarLayout.getClass().getDeclaredField("mCollapsingTextHelper"); field.setAccessible(true); final Object object = field.get(collapsingToolbarLayout); final Field tpf = object.getClass().getDeclaredField("mTextPaint"); tpf.setAccessible(true); ((TextPaint) tpf.get(object)).setTypeface(Typeface.createFromAsset(getAssets(), "Roboto-Bold.ttf")); ((TextPaint) tpf.get(object)).setColor(getResources().getColor(R.color.ice)); } catch (Exception ignored) { } } 
  mCollapsingToolbar.setTitle(getTitle()); mCollapsingToolbar.setExpandedTitleTextAppearance(R.style.ExpandedAppBar); mCollapsingToolbar.setCollapsedTitleTextAppearance(R.style.CollapsedAppBar); <style name="ExpandedAppBar" parent="@android:style/TextAppearance.Medium"> <item name="android:textSize">28sp</item> <item name="android:textColor">#000</item> <item name="android:textStyle">bold</item> </style> <style name="CollapsedAppBar" parent="@android:style/TextAppearance.Medium"> <item name="android:textSize">24sp</item> <item name="android:textColor">@color/white</item> <item name="android:textStyle">normal</item> </style> <style name="ExpandedAppBarPlus1" parent="@android:style/TextAppearance.Medium"> <item name="android:textSize">28.5sp</item> <item name="android:textColor">#000</item> <item name="android:textStyle">bold</item> </style> <style name="CollapsedAppBarPlus1" parent="@android:style/TextAppearance.Medium"> <item name="android:textSize">24.5sp</item> <item name="android:textColor">@color/white</item> <item name="android:textStyle">normal</item> </style> 

Referencia aquí CollapsingToolbarLayout setTitle no funciona correctamente

Cambiar el tamaño de fuente o el padre.

 <style name="expandedappbar" parent="@android:style/TextAppearance.Medium"> //Change Medium to Small <item name="android:textSize">28sp</item> <!--Or Change the font size --> <item name="android:textColor">@color/white</item> <item name="android:textStyle">bold</item> </style> <style name="collapsedappbar" parent="@android:style/TextAppearance.Medium"> <item name="android:textSize">18sp</item> <item name="android:textColor">@color/white</item> </style> 
  • Android: Mostrar caracteres especiales
  • Libgdx en android no puede detectar fuentes GDX
  • Cómo configurar Gujarati palabra conjunta en Android?
  • React Native: La personalización de la fuente se hace diferente en Android e iOS
  • La biblioteca de caligrafía de chrisjenx no funciona
  • Cómo utilizar Roboto condesed (o fino) fuente en ICS +?
  • ¿Cómo mostrar el texto vectorizado usando libgdx?
  • Uso de una tipografía personalizada en Android
  • ¿Qué tipos de archivos de fuentes soporta Android?
  • Configurar la fuente personalizada dentro de `ImageAdapter extends BaseAdapter`
  • ¿Cómo puedo escribir persa en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.