¿Cómo cambiar o establecer la familia de fuentes para un texto en Android a través del archivo de diseño?

Para Android 4.1 y superior, puede usar las siguientes etiquetas para cambiar / configurar la familia de fuentes en xml.

android:fontFamily="sans-serif" // roboto regular

android:fontFamily="sans-serif-light" // roboto light

android:fontFamily="sans-serif-condensed" // roboto condensed

android:fontFamily="sans-serif-thin" // roboto thin (android 4.2)

android:fontFamily="sans-serif-medium" // roboto medium (android 5.0)

en combinación con

android:textStyle="normal|bold|italic"

Hay un total de 14 posibles variantes

  • Roboto regular
  • Roboto cursiva
  • Roboto bold
  • Roboto negrita cursiva
  • Roboto-Light
  • Roboto-Light cursiva
  • Roboto-Thin
  • Roboto-Thin italic
  • Robotocondensado
  • Cursiva Roboto-Condensada
  • Negrita Roboto-Condensed
  • Roboto-Condensed negrita cursiva
  • Roboto-Medium
  • Roboto-Medium italic

Sin embargo, si desea utilizar una fuente personalizada, deberá hacerlo mediante programación.

Coloque el archivo de fuente en su carpeta de activos y configúrelo así:

TextView tv = (TextView) findViewById(R.id.appname);

Typeface face = Typeface.createFromAsset(getAssets(), "fonts/epimodem.ttf");

tv.setTypeface(face);

Si bien esto funciona, debe almacenar en caché el TypeFace, de lo contrario podría correr el riesgo de pérdidas de memoria en los teléfonos más antiguos. El almacenamiento en caché también aumentará la velocidad, ya que no es súper rápido leer de los activos todo el tiempo.

FontCache de clase pública {

Hashtable estático privado fontCache = new Hashtable ();

public static Typeface get (String name, Context context) {Typeface tf = fontCache.get (name);

if (tf == null) {try {tf = Typeface.createFromAsset (context.getAssets (), nombre);
}
captura (excepción e)
{return null; }
fontCache.put (nombre, tf); }
volver tf; }
}

Aquí hay un ejemplo completo sobre cómo cargar fuentes personalizadas y estilo TextViews, si necesita más ayuda.

¡Aclamaciones!

También puede crear una clase TextView personalizada con su tipo de letra y luego usar la clase Custom en el archivo de diseño.


clase pública CustomTextViewWithArmataTypeFace extiende TextView {

public CustomTextViewWithArmataTypeFace (contexto contextual) {

super (contexto);

}

public CustomTextViewWithArmataTypeFace (Contexto contextual, AttributeSet attrs) {

super (contexto, atributos);

}

public CustomTextViewWithArmataTypeFace (Contexto contextual, AttributeSet attrs, int defStyle) {

super (contexto, atributos, defStyle);

}

@Anular

public void setTypeface (Typeface tf, int style) {

super.setTypeface (Typeface.createFromAsset (getContext (). getAssets (), “ARMATA-REGULAR.TTF”));

}

}


y luego usar como:


android: layout_width = “match_parent”

android: layout_height = “wrap_content”

android: textColor = “@ android: color / darker_gray” />

La biblioteca de soporte de Android tiene formas fáciles de hacerlo para cualquier fuente que desee, consulte esto: Fuentes en XML | Fuentes personalizadas en la biblioteca de soporte de Android