style - set font android programmatically
Cómo usar Roboto en el diseño xml (2)
Lo escucho a menudo hoy en día: "Roboto es el tipo de fuente predeterminado". ¿Pero cómo uso este tipo de fuente predeterminado? Lo que quiero decir específicamente es que en los viejos tiempos cuando solía descargar los activos, etc., solía tener que especificar cosas como
<item name="typeface">roboto_bold</item>
Imagina que estoy interesado en usar todo el dicho (a su vez)
roboto_thin
roboto_thin_italic
roboto_light
roboto_light_italic
roboto_regular
roboto_italic
roboto_medium
roboto_medium_italic
roboto_bold
roboto_bold_italic
roboto_black
roboto_black_italic
roboto_condensed_light
roboto_condensed_light_italic
roboto_condensed_regular
roboto_condensed_italic
roboto_condensed_bold
roboto_condensed_bold_italic
roboto_slab_thin
roboto_slab_light
roboto_slab_regular
roboto_slab_bold
¿Cómo los especifico en mi archivo de diseño xml o en el archivo style.xml
?
Ya he encontrado algunas posibilidades
Usando fontfamily
La forma más simple sería agregar el atributo fontFamily
a su view
específica como TextView
De acuerdo con Cómo cambiar fontFamily of TextView en Android
Desde Android 4.1 / 4.2 / 5.0, están disponibles las siguientes familias de fuentes Roboto :
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)
http://developer.android.com/reference/android/widget/TextView.html#attr_android:typeface
en combinación con
android:textStyle="normal|bold|italic"
estas 14 variantes son posibles:
- Roboto regular
- Roboto cursiva
- Roboto negrita
- Roboto negrita cursiva
- Roboto-Light
- Roboto-Light cursiva
- Roboto-Thin
- Roboto-Thin cursiva
- Roboto-condensado
- Roboto-Condensado en cursiva
- Roboto-Condensed bold
- Roboto-Condensado negrita cursiva
- Roboto-Medium
- Roboto-Medium cursiva
También puede hacer esto programáticamente usando el código de la siguiente manera:
textView.setTypeface(Typeface.create("sans-serif-thin", Typeface.NORMAL));
Usando typeface
Las fuentes built-ibn disponibles son:
- normal
- sin
- serif
- monospace
Puede combinarlos como a continuación:
android:typeface="sans" | "serif" | "monospace"
Ver android: tipo de letra .
Usando styles.xml
Estableces el estilo en styles.xml` así:
<style name="boldText">
<item name="android:textStyle">bold|italic</item>
<item name="android:textColor">#FFFFFF</item>
</style>
y para usar este estilo en el archivo de diseño main.xml
simplemente use:
style="@style/boldText"
Combinando atrributes de texto
Puede mezclar atributos TextView
como en el siguiente código:
android:fontFamily="serif"
android:textStyle="italic"
Usar bibliotecas de terceros
Foundry
: aplique tipos de letra personalizados a través de diseños y estilos XML.
android-typeface-helper
- Typeface helper para Android
Conferencia adicional
También es posible que desee leer sobre la tipografía Roboto
y la Guía de diseño de Google Typography .