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 varias, conocida como "familia de fuentes" y definido 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>
El archivo en formato XML que aplica la fuente a un
TextView
se guarda enres/layout/
:<?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, sino que se recupera de un proveedor de fuentes.
- ubicación del archivo:
res/font/filename.xml
Se utiliza el nombre del archivo como ID de 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>
El archivo en formato XML que define el array de cert se guarda en
res/values/
:<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="certs"> <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item> </string-array> </resources>
El archivo en formato XML que aplica la fuente a un
TextView
se guarda enres/layout/
:<?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!" />