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:
- ¿Cómo puedo configurar mi propio tipo de letra en el renderizador AChartEngine?
- ¿Cambiar la fuente del texto al lado del botón de radio?
- Idiomas de indicador en el navegador de Android / GUI (Gujarati) interpretación incorrecta
- Establecer fuente para todas las textViews en la actividad?
- Establecer la fuente en tiempo de ejecución, Textview
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.
- ¿Puedo cambiar la fuente de salida de un teclado personalizado de Android?
- Aplicar dos estilos de fuente diferentes a un TextView
- ¿Cómo Android conjunto de fuentes personalizadas en la lona?
- Cambio de fuente de Roboto regular a Roboto condensado
- Ignorar el tamaño de fuente mínimo de la aplicación de Gmail de Android (Newsletter)
- Android - Hindi Conjuntos de Apoyo?
- Ayuda de Android con cambiar el tipo de fuente del botón, ¿cómo?
- Cómo cambiar la fuente en los widgets de Android a las fuentes definidas por el usuario en la carpeta "assets" de la aplicación?
¿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)
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" />
- Cómo obtener el índice seleccionado de un grupo de radio en Android
- Java.lang.OutOfMemoryError: tamaño de mapa de bits supera el presupuesto de VM – Android