Cómo agregar complicaciones a una cara de reloj

Una complicación de una cara de reloj muestra datos de una fuente de datos. Con el Formato de cara de reloj, puedes elegir las fuentes de datos para obtener los datos subyacentes. Esto permite que las caras de reloj muestren información además de la hora del día, sin necesidad de utilizar código para obtener los datos.

Usa el Formato de Caras de Relojes

El elemento Complication te permite definir hasta ocho complicaciones en una sola cara de reloj. El elemento también te permite definir dónde aparece cada complicación en la cara de reloj.

Para obtener más información, consulta el ejemplo de WatchFaceFormat en GitHub.

Tipos y campos

En la siguiente tabla, se describen los tipos y los campos del objeto ComplicationData. Si una cara de reloj solicita un campo que no es válido para un tipo de complicación, se muestra un valor predeterminado para el campo. Por ejemplo, si una cara de reloj intenta acceder a un campo LONG_TEXT en un tipo SHORT_TEXT, se muestra el valor predeterminado para el campo LONG_TEXT (nulo). Ten en cuenta que no se garantiza que se muestren los campos opcionales.





Tipo Campos obligatorios Campos opcionales Notas
SHORT_TEXT Texto corto Ícono
Ícono de protección de pantalla
Título corto
Descripción del contenido

Muestra solo un ícono o título corto si se proporcionan uno o ambos.
MONOCHROMATIC_IMAGE Imagen monocromática
Ícono de protección de pantalla
Descripción del contenido

Se usa cuando no se necesita texto. Se prevé que el ícono sea de un solo color y el tono puede ajustarse según la cara de reloj.
RANGED_VALUE Valor
Valor mínimo
Valor máximo
Imagen monocromática
Ícono de protección de pantalla
Texto corto
Título corto
Rampa de colores
Valor dinámico
Descripción del contenido

Si quieres diseñar tu propia barra de progreso, puedes usar el método isRangedValueProgressHidden() para ocultar la barra de progreso que proporciona la clase ComplicationDrawable.
GOAL_PROGRESS Valor
Valor objetivo
Imagen monocromática
Ícono de protección de pantalla
Texto corto
Título corto
Rampa de colores
Valor dinámico
Descripción del contenido

GOAL_PROGRESS está diseñado para acciones como el recuento de pasos, en el que el valor comienza en cero y puede superar el valor objetivo.
LONG_TEXT Texto largo
Título largo
Imagen monocromática
Ícono de protección de pantalla
Imagen pequeña
Descripción del contenido
Muestra el título largo si está incluido.
SMALL_IMAGE Imagen pequeña
Descripción del contenido
Una imagen pequeña tiene uno de dos estilos: de foto o de ícono. El estilo de foto implica que se espera que llene el espacio y que se pueda recortar. El estilo de ícono indica que no se puede recortar y que se puede rellenar. La variabilidad de la imagen puede producir una imagen no apta para mostrar en el modo ambiente en dispositivos con protección de pantalla o en modo ambiente con baja velocidad de bits. Cuando están habilitados la protección de pantalla o el modo ambiente con baja velocidad de bits, la cara de reloj puede usar una imagen pequeña de protección de pantalla, ya que es seguro. De lo contrario, debido a que para una cara de reloj es difícil determinar la aptitud, no se muestra la imagen.
LARGE_IMAGE Imagen grande
Descripción del contenido
Se prevé que esta imagen sea suficientemente grande como para llenar la cara de reloj. La variabilidad de la imagen puede producir una imagen no apta para mostrar en el modo ambiente en dispositivos con protección de pantalla o en modo ambiente con baja velocidad de bits. Debido a que es difícil que una cara de reloj determine si una imagen es apta para mostrar, no mostrará una imagen en modo ambiente si se habilitan la protección de pantalla o el modo ambiente con baja velocidad de bits.
WEIGHTED_ELEMENTS Lista de elementos
Imagen monocromática
Ícono de protección de pantalla
Texto corto
Título corto
Descripción del contenido
Cada elemento consta de un color y un peso (mayor que cero). El tamaño del elemento cuando se renderiza debe ser proporcional a su peso. No es necesario que los pesos sumen un valor particular. Ten en cuenta que las caras de reloj pueden cambiar el color de WEIGHTED_ELEMENTS.

En la siguiente tabla, se describen los tipos de complicaciones para datos vacíos que se pueden enviar a cualquier espacio para complicación. No tienen campos y no es necesario incluirlos en una lista de tipos compatibles. Permiten a las caras de reloj diferenciar entre estos tres casos:

  • No se seleccionó ninguna fuente.
  • El usuario seleccionó "empty" para un espacio.
  • Una fuente no tiene datos para enviar.

Las fuentes no pueden enviar TYPE_EMPTY en respuesta a solicitudes de actualización. Envía TYPE_NO_DATA en su lugar.

Tipo de complicación Descripción
TYPE_NOT_CONFIGURED Lo envía el sistema cuando se activa una complicación, pero el usuario no seleccionó una fuente y no se estableció un valor predeterminado.

Las fuentes no pueden enviarlo.

TYPE_EMPTY Lo envía el sistema cuando se activa una complicación y el usuario elige "empty" en lugar de una fuente, o bien cuando la cara de reloj no selecciona una fuente ni este tipo de complicación como valor predeterminado.

Las fuentes no pueden enviarlo.

TYPE_NO_DATA Lo envía el sistema cuando se activa una complicación (que tiene una fuente) para borrarla antes de que la fuente envíe datos reales.

Las fuentes pueden enviarlo si no tienen datos reales para enviar.

En algunos dispositivos, las caras de reloj y las complicaciones deben usar el Formato de Caras de Relojes.

Si tu cara de reloj existente usa la biblioteca de Jetpack Watch Face o la Wearable Support Library, los usuarios seguirán viendo datos de todas las fuentes de datos en las complicaciones de la cara de reloj en los siguientes dispositivos:

  • Dispositivos que ejecutan Wear OS 4 o versiones anteriores
  • Dispositivos que reciben una actualización inalámbrica a Wear OS 5

Además, si tu cara de reloj existente usa la biblioteca de caras de reloj de Jetpack o la biblioteca de compatibilidad con wearables y está instalada en uno de estos dispositivos, la cara de reloj puede seguir recibiendo actualizaciones.

Sin embargo, en los relojes nuevos que se lanzaron con Wear OS 5, las caras de reloj deben usar el Formato de Caras de Relojes. Por este motivo, te recomendamos que migres al uso del Formato de Caras de Relojes.