Tip:
Highlight text to annotate it
X
Las carátulas de reloj hechas a la medida
han sido una de las aplicaciones más anticipadas para Android Wear.
Con la ultima edición, el desarrollo de carátulas de reloj
se encuentran ahora oficialmente soportadas.
Soy Hoi Lam de Google, y la siguiente es una introducción
de cómo desarrollar carátulas de reloj.
Tu carátula de reloj es un servicio que corre en el fondo.
Te voy a conducir a través de los tres pasos directos
para construir el tuyo.
Primero, te enseñaré cómo crear tu proyecto
para tu carátula de reloj, segundo, cómo personalizarla
tanto para modos interactivo como para modo ambiente.
Y por último, pero no menos importante, las API´s adicionales
que te ayudarán a crear la carátula de reloj
que será legible en cualquier condición.
De esta manera, ¿Cómo comienzas?
La manera más sencilla es abriendo alguno de los ejemplos
de carátulas de reloj localizados en este directorio.
Hay una carátula de reloj digital y una ***ógica para que puedas comenzar.
Dentro del proyecto encontrarás dos métodos clave que impactarán
la instalación y el ciclo de renderizado.
Con onCreate, nosotros típicamente configuramos
la variables de instancia que incluyen el cargar objetos de mapa de bits,
o iniciar el pintado de objetos
para dibujar en la carátula de reloj o el lienzo.
En onDraw, nosotros renderizamos cada uno de los cuadros
que se van a desplegar en la carátula de reloj.
Ya que estamos dibujando en un lienzo, podemos usar el mapa de bits estándar
o las funcionalidades de dibujo de formas.
Es muy importante tener en cuenta el desempeño,
ya que el código corre en cada cuadro.
Después de crear el proyecto, ahora te encuentras listo
para personalizar la carátula de reloj
para los dos modos principales: interactivo y ambiente.
En el modo interactivo, la carátula de reloj
se encontrará a menudo a todo color con animación fluida.
Esto es típicamente cuando el usuario le está prestando atención a su reloj.
En modo ambiente, las gráficas deberán usar una paleta de colores limitada,
y solamente se actualizará una vez por minuto.
¿Cuáles son las más importantes opciones de personalización
disponibles en los dos modos?
En modo Interactivo, la plantilla de forma
está predeterminada para actualizarse una vez por segundo.
Si necesitas que se actualice más frecuentemente
--digamos, porque deseas correr una animación-- necesitarás tres cosas.
Primero, necesitas eliminar mUpdateTimeHandler.
De otra manera, el método onDraw solo será ejecutado una vez por segundo.
Segundo, necesitas activar el método onDraw
la primera vez que la carátula de reloj esté visible.
Esto se realiza invalidando el cuadro dentro del método onVisibilityChange.
Por último, necesitarás invalidar el cuadro al final del método onDraw.
Esto activará el bucle onDraw, que habilita una animación fluida.
Ahora, tu carátula de reloj se actualizará continuamente.
Es importante que revises que la carátula de reloj
se encuentra en modo Ambiente antes de invalidar el cuadro.
De otra manera, el bucle de actualización correrá continuamente en el fondo,
aún cuando esté en modo ambiente.
Y esto afectará significativamente el uso de la batería.
Una vez que hemos resuelto el modo interactivo,
es hora de hablar acerca del modo ambiente.
Las dos acciones comunes que los desarrolladores
toman en modo ambiente son: primero, escoger los gráficos
en escala de grises o en blanco y ***.
Segundo, eliminar los elementos en la pantalla
que se actualizan más de una vez por minuto,
como los minuteros o los dígitos que despliegan los segundos.
Para escuchar si el reloj ha entrado en modo ambiente puedes anular
el método onAmbientModeChange.
Los desarrolladores típicamente enviarán la variable de instancia
indicando si el reloj se encuentra en modo ambiente e invalidando el cuadro actual.
Esto desencadenará el redibujo.
Después, en el siguiente onDraw, el desarrollador podrá decidir
qué es lo que desea hacer.
Con la personalización básica fuera del camino,
es tiempo ahora para un pulido adicional.
Adicional al modo ambiente, el API de la carátula de reloj
proporciona a los desarrolladores contexto adicional
para asegurar que la carátula de reloj sea legible bajo cualquier condición.
Quisiera destacar dos de estos.
El primero, algunos dispositivos Android Wear
cuentan con soporte para ambientes con una tasa de bits baja
lo que significa que los pixeles solo pueden estar encendidos o apagados.
Tan solo reusando un diseño a escala de grises
típicamente no funciona en estas pantallas.
Por ejemplo, si no hacemos nada con el diseño a escala de grises
que tenemos para el Santa Tracker,
así es como se vería con una tasa de bits baja.
Como pueden ver, no es muy bonito.
Es por ello que hemos implementado este diseño alternativo en blanco y ***.
Para determinar si el dispositivo cuenta con soporte
para una tasa de bits baja, anula el método onPropertiesChange.
Y los desarrolladores podrán leer si el reloj cuenta con soporte
para una tasa baja de bits en modo ambiente.
El segundo --que es mi favorito-- la habilidad de descubrir
si se encuentra una peek card en la pantalla.
Esto te permite asegurarte de que no interactúe incorrectamente
con tu diseño de la carátula de reloj.
Y es especialmente importante en modo ambiente.
Sin esto, como puedes ver a la izquierda,
los minuteros interfieren con la peek card,
haciendo que sea difícil de leer.
En nuestro diseño final, dibujamos un rectángulo *** sin borde
detrás de la peek card para hacerla más legible.
Adicionalmente, usando la clase de estilo para carátula de reloj,
los desarrolladores pueden especificar si es que una peek card
deberá de aparecer o no en modo ambiente,
y si esta será opaca o translúcida en modo interactivo.
Por favor, revisen la documentación
para más características adicionales,
incluyendo cómo mantenerse actualizados cuando hay cambios en zonas horarias,
cómo desplegar datos en vivo en las carátulas de reloj,
y cómo alterar la configuración
de la carátula de reloj desde el dispositivo móvil.
Soy Hoi Lam, y espero poder leer la hora con tu carátula de reloj.