Tip:
Highlight text to annotate it
X
Mostradores personalizados eram
uma das características mais ávidamente esperadas
para o Android Wear.
Com o último lançamento, o desenvolvimento de mostradores
tem suporte oficial agora.
Eu sou Hoi Lam da Google,
e esta é uma introdução ao desenvolvimento de mostradores.
Seu mostrador é um serviço que roda em segundo plano.
Eu vou passar rapidamente para você três passos simples
para você fazer o seu.
Primeiro, vou explicar como criar seu projeto de mostrador,
segundo, como personalizá-lo
tanto para o modo Ambiente como para o Interativo.
E por último, mas não menos importante: APIs adicionais
que vão ajudá-lo a criar um mostrador
que será legível em todas as condições.
E então, como você pode começar?
A maneira mais fácil é abrir uma das amostras de mostrador
localizadas neste diretório.
Há um mostrador digital e um ***ógico
para você começar.
Dentro do projeto, você verá dois métodos chaves que impactam
a configuração e o loop de renderização.
No onCreate, nós tipicamente configuramos variáveis de instância,
que incluem carregar objetos bitmap
ou iniciar objetos de pintura para desenhar
no mostrador ou na tela.
No onDraw, renderizamos cada um dos quadros
que exibimos no mostrador.
Como estamos desenhando numa tela, podemos usar bitmap padrão
ou funcionalidades de desenho de formas.
É importante manter o desempenho em mente,
já que este código roda em cada quadro.
Depois de criar o projeto,
agora você está pronto para personalizar o mostrador
para os dois modos principais: Interativo e Ambiente.
No modo Interativo, o mostrador
será frequentemente em cores e com animação fluida.
Isto é tipicamente quando o usuário está prestando atenção
ao seu relógio.
Em modo Ambiente, os gráficos devem usar uma palheta de cores limitada.
E ele é atualizado apenas uma vez por minuto.
Então, quais são as principais opções de personalização
disponíveis nestes dois modos?
Em modo Interativo, o modelo
atualiza-se por padrão uma vez por segundo.
Se você precisa atualizar mais frequentemente, digamos,
porque você quer executar uma animação,
você precisará fazer três coisas.
Primeiro, você tem que remover o mUpdateTimeHandler.
De outro modo, o método onDraw será apenas
chamado uma vez por segundo.
Segundo, você precisa disparar o método onDraw na primeira vez
que o mostrador estiver visível.
Isto é feito invalidando o quadro sob o método onVisibilityChange.
Finalmente, você terá de invalidar um quadro
no fim do método onDraw.
Isto dará início ao loop do onDraw,
que habilita a animação fluida.
Agora seu mostrador se atualizará continuamente.
É importante que você verifique se o mostrador está
em modo Ambiente antes de invalidar o quadro.
De outro modo, o loop de atualização rodará continuamente
em segundo plano, mesmo quando estiver em modo Ambiente.
E isto terá um impacto significativo na vida da bateria.
Tendo lidado com o modo Interativo,
é hora de falar do modo Ambiente.
As duas ações comuns dos desenvolvedores em modo Ambiente são:
um, escolhemos gráficos em escala de cinza ou preto e branco;
e dois, removemos elementos da tela
que são atualizados mais de uma vez por minuto, tais como o ponteiro
ou os dígitos que mostram os segundos.
Para perceber se o relógio entrou
em modo Ambiente, você pode acionar
o método onAmbientModeChange.
Os desenvolvedores tipicamente enviarão a variável de instância
indicando se o relógio está em modo Ambiente
e invalidar o quadro atual.
Isto disparará o redesenho.
Então, no próximo onDraw,
o desenvolvedor pode decidir o que quer fazer.
Com a personalização básica fora do caminho,
está na hora de dar um polimento extra.
Além do modo Ambiente, os APIs de mostradores
dão aos desenvolvedores contextos adicionais
para que se certifiquem de que o mostrador está legível em todas as condições.
Eu gostaria de destacar dois destes.
Primeiro, alguns aparelhos Android Wear têm suporte para modo Ambiente low-bit,
o que significa que os pixels da tela só podem estar ligados ou desligados.
Meramente reutilizar um design em escala de cinza
tipicamente não funciona nestas telas.
Por exemplo, se não fizermos nada ao design em escala de cinza
que temos para o Santa Tracker,
é assim que ele ficaria em low-bit.
Como você pode ver, não é muito bonito.
É por isso que implementamos este design alternativo em preto e branco.
Para determinar se o aparelho dá suporte a low-bit,
acione o método onPropertiesChange.
E desenvolvedores podem ler se o relógio
dá suporte ao modo Ambiente low-bit.
Segundo - este é meu favorito - é a habilidade de descobrir
se há um Peek Card na tela.
Isto permite que você se certifique de que ele não interaja mal
com o seu design do mostrador.
E isto é especialmente importante em modo Ambiente.
Sem isso, como você pode ver à esquerda,
as marcações do relógio interferem com o Peek Card,
dificultando a leitura.
Em nosso design final, desenhamos um retângulo preto
sem borda atrás do Peek Card para deixá-lo mais legível.
Além disso, usando a classe WatchFaceStyle,
os desenvolvedores podem especificar se um Peek Card
é mostrado ou não em modo Ambiente,
ou se ele é opaco ou translúcido
em modo Interativo.
Por favor verifique a documentação
para muitas características mais,
incluindo como rastrear mudanças de fuso horário,
exibir dados ao vivo nos mostradores,
e alterar as configurações do mostrador a partir de um aparelho móvel.
Eu sou Hoi Lam, e espero ansiosamente ver as horas
com seu mostrador.