Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Valores válidos para android: fontFamily y para qué se correlacionan?

En la respuesta a esta pregunta, el usuario lista valores para android:fontFamily y 12 variantes (ver abajo). ¿De dónde vienen estos valores? La documentación de android:fontFamily no lista esta información en ningún lugar (he comprobado aquí , y aquí ). Las cadenas se muestran en el archivo styles.xml de Android en varios lugares, pero ¿cómo se remiten estos mapas a la fuente Roboto?

Desde android 4.1 / 4.2, 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) 

En combinación con este

 android:textStyle="normal|bold|italic" 

12 variantes son posibles:

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

En el archivo styles.xml de la aplicación estoy trabajando en alguien que aparece como la familia de fuentes, y estoy bastante seguro de que está mal:

<item name="android:fontFamily">Roboto-Regular.ttf</item>

Me gustaría que el tema de nuestra aplicación se haya configurado correctamente (lo que incluye usar fontFamily correctamente) y eliminar toda la redundancia que se encuentra en algunos de los estilos que se crearon antes de echar un vistazo al archivo.

3 Solutions collect form web for “Valores válidos para android: fontFamily y para qué se correlacionan?”

¿De dónde vienen estos valores? La documentación de android: fontFamily no lista esta información en ningún lugar

Éstos no son realmente enumerados en la documentación. Pero se mencionan aquí en la sección 'Familias de fuentes'. El documento enumera cada nueva API pública para Android Jelly Bean 4.1.

En el archivo styles.xml de la aplicación estoy trabajando en alguien que aparece como la familia de fuentes, y estoy bastante seguro de que está mal:

Sí, eso está mal. No hace referencia al archivo de fuente, tiene que utilizar el nombre de fuente mencionado en el documento vinculado anterior. En este caso debería haber sido esto:

 <item name="android:fontFamily">sans-serif</item> 

Como la respuesta vinculada ya mencionada, son posibles 12 variantes:

Añadido en Android Jelly Bean (4.1) – API 16:

Regular (predeterminado):

 <item name="android:fontFamily">sans-serif</item> <item name="android:textStyle">normal</item> 

Cursiva

 <item name="android:fontFamily">sans-serif</item> <item name="android:textStyle">italic</item> 

Audaz

 <item name="android:fontFamily">sans-serif</item> <item name="android:textStyle">bold</item> 

Negrita cursiva :

 <item name="android:fontFamily">sans-serif</item> <item name="android:textStyle">bold|italic</item> 

Luz :

 <item name="android:fontFamily">sans-serif-light</item> <item name="android:textStyle">normal</item> 

En cursiva :

 <item name="android:fontFamily">sans-serif-light</item> <item name="android:textStyle">italic</item> 

Delgado

 <item name="android:fontFamily">sans-serif-thin</item> <item name="android:textStyle">normal</item> 

Thin-itálico :

 <item name="android:fontFamily">sans-serif-thin</item> <item name="android:textStyle">italic</item> 

Condensado regular :

 <item name="android:fontFamily">sans-serif-condensed</item> <item name="android:textStyle">normal</item> 

Cursiva condensada :

 <item name="android:fontFamily">sans-serif-condensed</item> <item name="android:textStyle">italic</item> 

Negrita condensada :

 <item name="android:fontFamily">sans-serif-condensed</item> <item name="android:textStyle">bold</item> 

Negrita cursiva condensada :

 <item name="android:fontFamily">sans-serif-condensed</item> <item name="android:textStyle">bold|italic</item> 

Añadido en Android Lollipop (v5.0) – API 21:

Medio :

 <item name="android:fontFamily">sans-serif-medium</item> <item name="android:textStyle">normal</item> 

Medio-itálico :

 <item name="android:fontFamily">sans-serif-medium</item> <item name="android:textStyle">italic</item> 

Negro :

 <item name="android:fontFamily">sans-serif-black</item> <item name="android:textStyle">italic</item> 

Para una referencia rápida, así es como se ven todos:

Fuentes disponibles (como Nougat)

Vista previa de todas las fuentes

Puede leer más sobre estas fuentes en http://developer.android.com/design/style/typography.html .

fonts.xml es la lista definitiva y en constante expansión de las fuentes de Android.


Uso de estas fuentes

Para usar una de estas fuentes, busque en fonts.xml y busque el fonts.xml la fuente. Por ejemplo, para usar Cutive Mono, el fragmento relevante de fonts.xml es

 <family name="serif-monospace"> <font weight="400" style="normal">CutiveMono.ttf</font> </family> 

serif-monospace es así el apellido. Especifique ese apellido en su TextView o estilo, por ejemplo

 <TextView android:fontFamily="serif-monospace" android:textStyle="italic" /> 

O simplemente usa esta tabla:

 Font | android:fontFamily | android:textStyle -------------------------|----------------------------|------------------- Roboto Thin | sans-serif-thin | Roboto Light | sans-serif-light | Roboto Regular | sans-serif | Roboto Bold | sans-serif | bold Roboto Medium | sans-serif-medium | Roboto Black | sans-serif-black | Roboto Condensed Light | sans-serif-condensed-light | Roboto Condensed Regular | sans-serif-condensed | Roboto Condensed Bold | sans-serif-condensed | bold Noto Serif | serif | Noto Serif Bold | serif | bold Droid Sans Mono | monospace | Cutive Mono | serif-monospace | Coming Soon | casual | Dancing Script | cursive | Dancing Script Bold | cursive | bold Carrois Gothic SC | sans-serif-smallcaps | 

(Noto Sans es una fuente de fallback, no se puede especificar directamente)


Compatibilidad

Basado en el registro de fonts.xml y el anterior system_fonts.xml , puede ver cuándo se agregó cada fuente:

  • Sandwich de helado: Roboto regular, negrita, cursiva y cursiva negrita
  • Jelly Bean: Roboto light, cursiva clara, condensada, condensada negrita, condensada itálica y condensada negrita cursiva
  • Jelly Bean MR1: Roboto fino y delgado en cursiva
  • Chupete:
    • Roboto medio, cursiva media, negra y negra cursiva
    • Noto Serif regular, negrita, cursiva, negrita cursiva
    • Cutivo Mono
    • Próximamente
    • Guión de baile
    • Carrois Gothic SC
    • Noto Sans

Por lo que yo sepa, no puede declarar fuentes personalizadas en xml o temas. Normalmente sólo hago clases personalizadas extendiendo textview que establecen su propia fuente en la instanciación y uso aquellos en mis archivos xml de diseño.

es decir:

 public class Museo500TextView extends TextView { public Museo500TextView(Context context, AttributeSet attrs) { super(context, attrs); this.setTypeface(Typeface.createFromAsset(context.getAssets(), "path/to/font.ttf")); } } 

y

 <my.package.views.Museo900TextView android:id="@+id/dialog_error_text_header" android:layout_width="190dp" android:layout_height="wrap_content" android:gravity="center_horizontal" android:textSize="12sp" /> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.