La función de fuentes descargables permite que las APIs soliciten fuentes de una aplicación de proveedor en lugar de agrupar archivos en la app o permitir que esta descargue fuentes. Las fuentes descargables están disponibles en
dispositivos que ejecutan las versiones 14 y posteriores de la API de Android a través de la biblioteca de AndroidX Core.
Las fuentes descargables ofrecen los siguientes beneficios:
Reduce el tamaño de la app y, por ende, aumenta la tasa de éxito de la instalación de la app.
Mejora el estado general del sistema, ya que varias apps pueden compartir la misma fuente a través de un proveedor. Esto permite que los usuarios ahorren datos móviles, memoria del teléfono y espacio en el disco. En este modelo, la fuente se recupera a través de la red cuando es necesario.
Para obtener experiencia práctica con las fuentes descargables, consulta la app de ejemplo DownloadableFonts.
¿Cómo funciona Fuentes para descargar?
Un proveedor de fuentes es una aplicación que recupera fuentes y las almacena en caché de forma local para que otras apps puedan solicitarlas y compartirlas. En la siguiente figura, se ilustra el proceso.
Figura 1: Proceso de fuentes descargables
Conceptos básicos
Puedes usar la función Fuentes descargables de las siguientes maneras, que se analizan en detalle
en secciones posteriores:
Cómo usar fuentes descargables con Android Studio y los Servicios de Google Play
Puedes configurar tu aplicación para que descargue fuentes con Android Studio 3.0 o versiones posteriores. Para ayudarte a comenzar a usar las funciones de Fuentes descargables, puedes usar el proveedor de fuentes de los Servicios de Google Play.
En el editor de diseño, selecciona un TextView. Luego, en Attributes, selecciona fontFamily > More Fonts.
Figura 2: Usa el editor de diseño.
Aparecerá la ventana Resources.
En el menú Fuente, selecciona Google Fonts.
En el cuadro Fonts, selecciona una fuente en el área "Downloadable".
Selecciona Crear fuente descargable y haz clic en Aceptar.
Figura 3. Selecciona una fuente en la ventana Resources.
Android Studio genera automáticamente los archivos XML pertinentes que se necesitan para renderizar la fuente
correctamente en tu app.
Figura 4. Obtén una vista previa del archivo de fuente.
Cómo usar las fuentes descargables de manera programática
A partir de Android 8.0 (nivel de API 26), AndroidX Core proporciona compatibilidad total con las fuentes descargables. Para
obtener más información sobre el uso de la biblioteca principal de AndroidX, consulta la
sección Biblioteca principal de AndroidX de fuentes descargables en esta página.
Para usar la función Fuentes descargables de manera programática, interactúa con dos clases clave:
Tu app recupera fuentes del proveedor de fuentes con la API de FontsContract. Cada
proveedor tiene su propio conjunto de restricciones en las versiones de Android y el lenguaje de consulta que admite. Para
obtener más información sobre las versiones de Android y el formato de consulta, consulta la documentación de tu
proveedor.
Para descargar una fuente, sigue estos pasos:
Crea una instancia de la clase android.graphics.fonts.FontRequest para solicitar la fuente al proveedor. Para crear una solicitud, pasa los siguientes parámetros:
La autoridad del proveedor de fuentes
El paquete del proveedor de fuentes para verificar su identidad
La búsqueda de string de la fuente Para obtener más información sobre los formatos de consulta, consulta la documentación de tu proveedor de fuentes, como Google Fonts.
Es una lista de conjuntos de hashes para los certificados que se usan para verificar la identidad del proveedor.
Anula el método onTypefaceRetrieved() para indicar que la solicitud de fuente está completa. Proporciona la fuente recuperada como parámetro.
Puedes usar este método para configurar la fuente según sea necesario. Por ejemplo, puedes establecer la fuente en un elemento TextView.
Anula el método onTypefaceRequestFailed() para recibir información sobre errores en el proceso de solicitud de fuentes. Para obtener más información sobre los códigos de error, consulta las constantes de códigos de error.
Llama al método FontsContract.requestFont() para recuperar la fuente del proveedor de fuentes. El método inicia una verificación para determinar si la fuente existe en la caché. Si la fuente no está disponible de forma local, llama al proveedor de fuentes, recupera la fuente de forma asíncrona y pasa el resultado a la devolución de llamada. Pasa los siguientes parámetros:
Una instancia de la clase android.graphics.fonts.FontRequest
Es una devolución de llamada para recibir los resultados de la solicitud de fuente.
Un controlador para recuperar fuentes en un subproceso
En el siguiente código de muestra, se ilustra el proceso general de las fuentes descargables:
Kotlin
valrequest=FontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs)valcallback=object:FontsContract.FontRequestCallback(){overridefunonTypefaceRetrieved(typeface:Typeface){// Your code to use the font goes here....}overridefunonTypefaceRequestFailed(reason:Int){// Your code to deal with the failure goes here....}}FontsContract.requestFonts(context,request,handler,null,callback)
Java
FontRequestrequest=newFontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs);FontsContract.FontRequestCallbackcallback=newFontsContract.FontRequestCallback(){@OverridepublicvoidonTypefaceRetrieved(Typefacetypeface){// Your code to use the font goes here....}@OverridepublicvoidonTypefaceRequestFailed(intreason){// Your code to deal with the failure goes here....}};FontsContract.requestFonts(context,request,handler,null,callback);
Si deseas obtener más información para descargar una fuente de un proveedor de fuentes, consulta la app de ejemplo DownloadableFonts.
Cómo usar fuentes descargables con AndroidX Core
AndroidX Core proporciona compatibilidad con la función de fuentes descargables en dispositivos que ejecutan las versiones 14 o posteriores de la API de Android. El paquete androidx.core.provider contiene las clases FontsContractCompat y FontRequest para implementar la compatibilidad con la función Fuentes descargables retrocompatible. Las clases de AndroidX contienen métodos similares a los del framework, y el proceso para descargar fuentes es similar al que se describe en la sección de esta página sobre cómo usar fuentes descargables de manera programática.
Para descargar fuentes con AndroidX, importa las clases FontsContractCompat y FontRequest del paquete androidx.core.provider. Crea instancias de estas clases en lugar de las clases de framework FontsContract y android.graphics.fonts.FontRequest.
Agrega la dependencia de AndroidX Core
Para usar las clases FontsContractCompat y FontRequest, debes modificar las dependencias de la ruta de clase del proyecto de tu app en el entorno de desarrollo.
Para agregar AndroidX Core a tu proyecto de aplicación, agrega la siguiente dependencia al archivo
build.gradle de tu app:
Cómo usar fuentes descargables como recursos en XML
Android 8.0 (nivel de API 26) y AndroidX Core ofrecen una forma más rápida y conveniente de declarar una fuente personalizada como recurso en el diseño XML. Esto significa que no es necesario empaquetar la fuente como un recurso. Puedes definir una fuente personalizada para todo el tema, lo que acelera la usabilidad de varios grosores y estilos, como negrita, medio o fino, cuando se proporcionan.
Crea un nuevo archivo en formato XML en la carpeta res/font.
Agrega un elemento raíz <font-family> y configura los atributos relacionados con la fuente, como se muestra en el siguiente archivo en formato XML de ejemplo:
Haz referencia al archivo como @font/font_file_name en el archivo en formato XML de diseño. También puedes
usar el método
getFont()
para recuperar el archivo de manera programática, como
getFont(R.font.font_file_name).
Declara previamente las fuentes en el manifiesto
El aumento del diseño y la recuperación de recursos son tareas sincrónicas. De forma predeterminada, el primer intento de recuperar fuentes activa una solicitud al proveedor de fuentes y, por lo tanto, aumenta el tiempo del primer diseño. Para evitar la demora, puedes declarar previamente en tu manifiesto las fuentes que se deben recuperar.
Después de que el sistema recupera la fuente del proveedor, esta se encuentra disponible de inmediato. Si la recuperación de la fuente tarda más de lo esperado, el sistema anula el proceso de recuperación y usa la fuente predeterminada.
Para declarar previamente las fuentes en el manifiesto, completa los siguientes pasos:
Crea un array de recursos en res/values/arrays.xml y declara las fuentes que quieres recuperar previamente.
Cuando un proveedor de fuentes no está preinstalado o si usas la biblioteca de AndroidX Core, declara
los certificados con los que está firmado el proveedor de fuentes. El sistema usa los certificados para verificar la identidad del proveedor de fuentes.
Sigue estos pasos para agregar certificados:
Crea un array de strings con los detalles del certificado. Para obtener más información sobre los detalles del certificado, consulta la documentación de tu proveedor de fuentes.
Establece el atributo fontProviderCerts en el array.
android:fontProviderCerts="@array/certs"
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2026-10-17 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2026-10-17 (UTC)"],[],[]]