Un recurso de fuente define una fuente personalizada que puedes usar en tu app. Las fuentes pueden ser archivos individuales o una colección de varios, que se conoce como familia de fuentes y se define en XML.
También consulta cómo definir fuentes en XML o usar fuentes descargables.
Paquete de fuentes
Puedes agrupar las fuentes como recursos de una app. Las fuentes se compilan en un archivo R
y están disponibles automáticamente en el sistema como recurso. Luego, puedes acceder a ellas con la ayuda del tipo de recurso font
.
- ubicación del archivo:
res/font/filename.ttf
(.ttf
,.ttc
,.otf
o.xml
)
Se usa el nombre del archivo como el ID de recurso.- referencia del recurso:
- En XML:
@[package:]font/font_name
- sintaxis:
-
<?xml version="1.0" encoding="utf-8"?> <font-family> <font android:font="@[package:]font/font_to_include" android:fontStyle=["normal" | "italic"] android:fontWeight="weight_value" /> </font-family>
- elementos:
- Ejemplo:
- Archivo en formato XML guardado en
res/font/lobster.xml
:<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:android="http://schemas.android.com/apk/res/android"> <font android:fontStyle="normal" android:fontWeight="400" android:font="@font/lobster_regular" /> <font android:fontStyle="italic" android:fontWeight="400" android:font="@font/lobster_italic" /> </font-family>
Archivo en formato XML guardado en
res/layout/
que aplica la fuente a un elementoTextView
:<?xml version="1.0" encoding="utf-8"?> <EditText android:fontFamily="@font/lobster" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello, World!" />
Fuente descargable
Un recurso de fuente descargable define una fuente personalizada que puedes usar en una app. Esta fuente no está disponible en la app. En cambio, la fuente se recupera de un proveedor de fuentes.
- ubicación del archivo:
res/font/filename.xml
El nombre del archivo es el ID del recurso.- referencia del recurso:
- En XML:
@[package:]font/font_name
- sintaxis:
-
<?xml version="1.0" encoding="utf-8"?> <font-family android:fontProviderAuthority="authority" android:fontProviderPackage="package" android:fontProviderQuery="query" android:fontProviderCerts="@[package:]array/array_resource" />
- elementos:
- Ejemplo:
- Archivo en formato XML guardado en
res/font/lobster.xml
:<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:android="http://schemas.android.com/apk/res/android" android:fontProviderAuthority="com.example.fontprovider.authority" android:fontProviderPackage="com.example.fontprovider" android:fontProviderQuery="Lobster" android:fontProviderCerts="@array/certs"> </font-family>
Archivo en formato XML guardado en
res/values/
que define el array de cert:<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="certs"> <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item> </string-array> </resources>
Archivo en formato XML guardado en
res/layout/
que aplica la fuente a un elementoTextView
:<?xml version="1.0" encoding="utf-8"?> <EditText android:fontFamily="@font/lobster" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello, World!" />