¿Cómo se especifica, por ejemplo. Roboto-Medium o Roboto-Black en styles.xml

Puestos como este Cómo cambiar fontFamily de TextView en Android sugiere que las variantes de las fuentes Roboto que puede especificar en styles.xml en Android 4.2 se reduce a lo siguiente:

  • Regular
  • Itálico
  • Negrita
  • Negrita cursiva
  • Ligero
  • En cursiva
  • Delgado
  • Thin-itálico
  • Condensed regular
  • Cursiva condensada
  • Negrita condensada
  • Negrita en negrita

Que deja fuera la capacidad de estilo TextViews utilizando, por ejemplo. Las fuentes Roboto-Medium o Roboto-Black.

¿Pero por qué Google agregaría las fuentes amplias del sistema que no se pueden utilizar para el estilo de sus TextViews? Seguramente debe haber alguna forma de especificar todas las fuentes de Roboto dentro de styles.xml (es decir, NO tener que incrustar las fuentes como Activos y crear TextViews personalizadas en el código) – pero ¿cómo?

En Android 5.0 puede configurar Roboto Medium con medio sans-serif-medium .

Esta solución, tomada de Google iosched 2014 , utiliza sans-serif en Android pre-v21:

Values ​​/ styles.xml

 <style name="MyStyle"> <item name="android:fontFamily">@string/font_fontFamily_medium</item> </style> 

Values ​​/ fonts.xml

 <string name="font_fontFamily_medium">sans-serif</string> 

Values-v21 / fonts.xml

 <string name="font_fontFamily_medium">sans-serif-medium</string> 

Gracias por Jakob Eriksson

Cómo cambiar fontFamily de TextView en Android

  android:fontFamily="sans-serif" // roboto regular android:fontFamily="sans-serif-light" // roboto light android:fontFamily="sans-serif-condensed" // roboto condensed android:fontFamily="sans-serif-black" // roboto black android:fontFamily="sans-serif-thin" // roboto thin (android 4.2) android:fontFamily="sans-serif-medium" // roboto medium (android 5.0) 

en estilo:

 <style name="AppTheme.DefaultTextView"parent="android:style/Widget.TextView"> <item name="android:textSize">@dimen/text_view_text_size</item> <item name="android:textColor">@color/black</item> <item name="android:fontFamily">sans-serif-light</item> <item name="android:textStyle">normal</item> </style> 

En el tema de la aplicación:

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/gray</item> <item name="android:textViewStyle">@style/AppTheme.DefaultTextView</item> </style> 

Le sugiero que utilice bibliotecas personalizadas como Android-RobotoTextView o Caligrafía . Con uno de estos puede configurar la fuente de una vista en xml con un atributo para que pueda poner en styles.xml. Y funciona con la versión anterior de Android que 4.0

  • Cómo agregar fuentes externas a la aplicación Android
  • RuntimeException: tipo de letra nativo no se puede hacer o pérdida de memoria para personalizado TextView carga de fuente
  • Fuentes personalizadas para TextView basadas en idiomas dentro de String
  • El tamaño de fuente de las aplicaciones de Android cambia según el tamaño de fuente definido en la configuración
  • ¿Qué tipo de fuente debo utilizar para TextView que puede soportar todos los idiomas?
  • Cambiar la fuente del fragmento de lista en el fragmento de detalle
  • ¿Qué glifos o conjuntos de caracteres están incluidos en las fuentes Roboto?
  • Texto con fuente personalizada y estilo en negrita
  • Configuración de la fuente de texto del botón en android
  • Las fuentes ttf personalizadas no se muestran correctamente en TextView en Android 4.4 KitKat
  • Uso de fuentes personalizadas para todo el texto de la aplicación que no funciona con Lollipop
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.