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, conocido 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 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 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 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 XML que define el arreglo 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 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!" />