diff options
Diffstat (limited to 'docs/html-intl/intl/pt-br')
5 files changed, 1648 insertions, 0 deletions
diff --git a/docs/html-intl/intl/pt-br/design/get-started/principles.jd b/docs/html-intl/intl/pt-br/design/get-started/principles.jd new file mode 100644 index 0000000..46af758 --- /dev/null +++ b/docs/html-intl/intl/pt-br/design/get-started/principles.jd @@ -0,0 +1,307 @@ +page.title=Princípios de projeto para Android +@jd:body + +<p>Estes princípios de projeto foram desenvolvidos pela e para a Equipe de Experiência do Usuário do Android +para manter os interesses dos usuários em mente. +Para desenvolvedores e projetistas do Android, eles continuam a +definir as diretrizes de projeto mais detalhadas para diferentes +tipos de dispositivo.</p> + +<p> +Considere estes princípios ao aplicar +suas próprias criatividade e mentalidade de projeto. Desvie-se de forma objetiva. +</p> + +<h2 id="enchant-me">Encante-me</h2> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="delight-me">Agrade-me de formas surpreendentes</h4> +<p>Uma bela superfície, uma animação cuidadosamente posicionada ou um efeito sonoro no momento certo + contribui para a boa experiência. Efeitos sutis contribuem para uma sensação de facilidade e de que algo +poderoso está à mão.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_delight.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="real-objects-more-fun">Objetos reais são mais divertidos que botões e menus</h4> +<p>Deixe que as pessoas manipulem e toquem diretamente em objetos no seu aplicativo. Isso reduz o esforço cognitivo +necessário para realizar uma tarefa e torna o aplicativo mais emocionalmente satisfatório.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_real_objects.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="make-it-mine">Deixe-me torná-lo meu</h4> +<p>As pessoas adoram adicionar toques pessoais, pois isso as ajuda a se sentirem à vontade e em controle. Forneça +padrões sensatos e belos, mas também considere personalizações divertidas e opcionais que não +prejudiquem as tarefas principais.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_make_it_mine.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="get-to-know-me">Conheça-me</h4> +<p>Conheça as preferências das pessoas no decorrer do tempo. Em vez de pedir que façam as mesmas escolhas repetidamente, +coloque escolhas anteriores em alcance fácil.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_get_to_know_me.png"> + + </div> +</div> + +<h2 id="simplify-my-life">Simplifique minha vida</h2> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="keep-it-brief">Seja breve</h4> +<p>Use frases curtas com palavras simples. As pessoas provavelmente ignorarão frases longas.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_keep_it_brief.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="pictures-faster-than-words">Imagens são mais rápidas que palavras</h4> +<p>Considere usar imagens para explicar ideias. Elas chamam a atenção das pessoas e podem ser muito mais eficientes +que palavras.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_pictures.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="decide-for-me">Decida por mim, mas deixe que eu tenha a palavra final</h4> +<p>Faça a melhor suposição e tome uma ação, em vez de primeiro perguntar. Escolhas e decisões demais deixam as pessoas +incomodadas. Caso suponha errado, permita "desfazer".</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_decide_for_me.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="only-show-when-i-need-it">Mostre só o que preciso, quando eu precisar</h4> +<p>As pessoas se sentem oprimidas quando veem coisas demais de uma vez. Detalhe tarefas e informações em partes +pequenas e digeríveis. Oculte opções que não sejam essenciais no momento e ensine as pessoas à medida que avançam.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_information_when_need_it.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="always-know-where-i-am">Eu sempre devo saber onde estou</h4> +<p>Dê às pessoas a confiança de saberem o que fazer. Faça com que os locais no seu aplicativo pareçam distintos +e use transições para mostrar relacionamentos entre telas. Forneça feedback sobre tarefas em andamento.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_navigation.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="never-lose-my-stuff">Nunca perca as minhas coisas</h4> +<p>Salve o que as pessoas criaram e deixe que elas acessem de qualquer lugar. Lembre-se de configurações, +toques pessoais e criações entre celulares, tablets e computadores. Isso torna a atualização a +coisa mais fácil do mundo.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_never_lose_stuff.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="looks-same-should-act-same">Se parece igual, deve agir da mesma forma</h4> +<p>Ajude as pessoas a discernir diferenças funcionais tornando-as visualmente distintas, em vez de sutis. +Evite que modos locais que agem de forma diferente sobre a mesma entrada se pareçam.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_looks_same.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="interrupt-only-if-important">Só me interrompa se for importante</h4> +<p>Como um bom assistente pessoal, proteja as pessoas de informações não importantes. As pessoas querem ficar +concentradas e, a não ser que seja crítica e dependente de tempo, uma interrupção pode ser irritante e frustrante.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_important_interruption.png"> + + </div> +</div> + +<h2 id="make-me-amazing">Faça com que eu seja incrível</h2> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="give-me-tricks">Dê-me truques que funcionem em qualquer lugar</h4> +<p>As pessoas se sentem ótimas quando descobrem coisas sozinhas. Torne seu aplicativo mais inteligível ao +aproveitar padrões visuais e memórias de outros aplicativos do Android. Por exemplo, o gesto de deslizar +pode ser um bom atalho de navegação.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_tricks.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="its-not-my-fault">Não é culpa minha</h4> +<p>Seja gentil sobre como solicita correções a pessoas. Elas querem se sentir inteligentes ao usar o seu +aplicativo. Se alguma coisa der errada, dê instruções de recuperação claras, mas evite os detalhes técnicos. +Se for possível corrigir em segundo plano, melhor ainda.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_error.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="sprinkle-encouragement">Espalhe motivação</h4> +<p>Divida tarefas complexas em passos menores que possam ser realizados facilmente. Dê feedback sobre ações, +mesmo que seja um brilho sutil.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_sprinkle_encouragement.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="do-heavy-lifting-for-me">Faça o trabalho pesado por mim</h4> +<p>Faça com que novatos se sintam peritos possibilitando que façam coisas que nunca acharam possíveis. Por +exemplo, atalhos que combinem vários efeitos de fotos podem fazer com que fotografias amadoras pareçam incríveis +com apenas alguns passos.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_heavy_lifting.png"> + + </div> +</div> + +<div class="vspace size-2"> </div> + +<div class="layout-content-row"> + <div class="layout-content-col span-7"> + +<h4 id="make-important-things-fast">Torne coisas importantes rápidas</h4> +<p>Nem todas as ações são iguais. Decida o que é mais importante em seu aplicativo e torne fácil de encontrar e +rápido de usar, como o botão do obturador em uma câmera ou o botão de pausa em um reprodutor de música.</p> + + </div> + <div class="layout-content-col span-6"> + + <img src="{@docRoot}design/media/principles_make_important_fast.png"> + + </div> +</div> diff --git a/docs/html-intl/intl/pt-br/design/material/index.jd b/docs/html-intl/intl/pt-br/design/material/index.jd new file mode 100644 index 0000000..60289a3 --- /dev/null +++ b/docs/html-intl/intl/pt-br/design/material/index.jd @@ -0,0 +1,186 @@ +page.title=Material Design +page.tags=Material,design +page.type=design +page.image=design/material/images/MaterialLight.png + +@jd:body + +<!-- developer docs box --> +<a class="notice-developers right" href="{@docRoot}training/material/index.html"> + <div> + <h3>Documentos do desenvolvedor</h3> + <p>Criação de aplicativos com o Material Design</p> + </div> +</a> + +<!-- video box --> +<a class="notice-developers-video" href="https://www.youtube.com/watch?v=p4gmvHyuZzw"> +<div> + <h3>Vídeo</h3> + <p>Introdução ao Material Design</p> +</div> +</a> + +<!-- video box --> +<a class="notice-developers-video" href="https://www.youtube.com/watch?v=YaG_ljfzeUw"> +<div> + <h3>Vídeo</h3> + <p>Papel e tinta: Os materiais que importam</p> +</div> +</a> + +<!-- video box --> +<a class="notice-developers-video" href="https://www.youtube.com/watch?v=XOcCOBe8PTc"> +<div> + <h3>Vídeo</h3> + <p>Material Design no aplicativo Google I/O</p> +</div> +</a> + + + +<p itemprop="description">O Material Design é um guia abrangente para design visual, de movimento e de +interação para diversas plataformas e dispositivos. O Android agora é compatível com +aplicativos do Material Design. Para usar o Material Design nos aplicativos Android, siga as orientações definidas +nas <a href="http://www.google.com/design/spec">especificações do Material Design</a> e use os novos +componentes e funcionalidades disponíveis no Android 5.0 (API de nível 21) e em posteriores.</p> + +<p>O Android fornece os seguintes elementos para criar aplicativos do Material Design:</p> + +<ul> + <li>Um novo tema</li> + <li>Novos widgets para vistas complexas</li> + <li>Novas APIs para sombras e animações personalizadas</li> +</ul> + +<p>Para obter mais informações sobre a implementação do Material Design no Android, consulte +<a href="{@docRoot}training/material/index.html">Criação de aplicativos com o Material Design</a>.</p> + + +<h3>Tema do Material</h3> + +<p>O tema do Material fornece um novo estilo para o seu aplicativo, widgets de sistema que permitem +definir a paleta de cores e as animações padrão para feedback de toque e transições de atividades.</p> + +<!-- two columns --> +<div style="width:700px;margin-top:25px;margin-bottom:20px"> +<div style="float:left;width:250px;margin-left:40px;margin-right:60px;"> + <img src="{@docRoot}design/material/images/MaterialDark.png" width="500" height="238" /> + <div style="width:140px;margin:0 auto"> + <p style="margin-top:8px">Tema escuro do Material</p> + </div> +</div> +<div style="float:left;width:250px;margin-right:0px;"> + <img src="{@docRoot}design/material/images/MaterialLight.png" width="500" height="238" /> + <div style="width:140px;margin:0 auto"> + <p style="margin-top:8px">Tema claro do Material</p> + </div> +</div> +<br style="clear:left"/> +</div> + +<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/theme.html">Como usar o tema +do Material</a>.</p> + + +<h3>Listas e cartões</h3> + +<p>O Android fornece dois novos widgets para exibir cartões e listas com estilos e animações do +Material Design:</p> + +<!-- two columns --> +<div style="width:700px;margin-top:25px;margin-bottom:20px"> +<div style="float:left;width:250px;margin-left:40px;margin-right:60px;"> + <img src="{@docRoot}design/material/images/list_mail.png" width="500" height="426" /> + <p>O novo widget <code>RecyclerView</code> é uma versão mais completa de <code>ListView</code> + com suporte para diferentes tipos de layout e melhorias no desempenho.</p> +</div> +<div style="float:left;width:250px;margin-right:0px;"> + <img src="{@docRoot}design/material/images/card_travel.png" width="500" height="426" /> + <p>O novo widget <code>CardView</code> permite exibir informações importantes dentro de + cartões que têm aparência consistente.</p> +</div> +<br style="clear:left"/> +</div> + +<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/lists-cards.html">Como criar +listas e cartões</a>.</p> + + +<h3>Sombras de vistas</h3> + +<p>Além das propriedades X e Y, vistas no Android agora têm uma propriedade +Z. Essa nova propriedade representa a elevação de uma vista, que determina:</p> + +<ul> +<li>O tamanho da sombra: vistas com valores maiores de Z lançam sombras maiores.</li> +<li>A ordem de desenho: vistas com valores maiores de Z aparecem sobre outras vistas.</li> +</ul> + +<div style="width:290px;margin-left:35px;float:right"> + <div class="framed-nexus5-port-span-5"> + <video class="play-on-hover" autoplay> + <source src="{@docRoot}design/material/videos/ContactsAnim.mp4"/> + <source src="{@docRoot}design/videos/ContactsAnim.webm"/> + <source src="{@docRoot}design/videos/ContactsAnim.ogv"/> + </video> + </div> + <div style="font-size:10pt;margin-left:20px;margin-bottom:30px"> + <em>Para reproduzir o filme, clique na tela do dispositivo</em> + </div> +</div> + +<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/shadows-clipping.html">Como +definir sombras e recortar visualizações</a>.</p> + + +<h3>Animações</h3> + +<p>As novas APIs de animação permitem criar animações personalizadas para feedback de toque em controles de IU, +mudanças no estado da vista e transições de atividades.</p> + +<p>Essas APIs permitem:</p> + +<ul> +<li style="margin-bottom:15px"> +Responder a eventos de toque nas vistas com animações de <strong>feedback de toque</strong>. +</li> +<li style="margin-bottom:15px"> +Ocultar e exibir vistas com animações de <strong>revelação circular</strong>. +</li> +<li style="margin-bottom:15px"> +Alternar entre atividades com animações de <strong>transição de atividades</strong>. +</li> +<li style="margin-bottom:15px"> +Criar animações mais naturais com <strong>movimento curvado</strong>. +</li> +<li style="margin-bottom:15px"> +Animar mudanças em uma ou mais propriedades da vista com animações de <strong>mudança de estado da vista</strong>. +</li> +<li style="margin-bottom:15px"> +Exibir animações em <strong>desenháveis da lista de estado</strong> entre mudanças de estado da vista. +</li> +</ul> + +<p>Animações de feedback de toque são integradas em várias vistas padrões, como botões. As novas APIs +permitem personalizar essas animações e adicioná-las às vistas personalizadas.</p> + +<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/animations.html">Como definir +animações personalizadas</a>.</p> + + +<h3>Desenháveis</h3> + +<p>Essas novas capacidades dos desenháveis ajudam na implementação de aplicativos do Material Design:</p> + +<ul> +<li><strong>Desenháveis de vetor</strong> são dimensionáveis sem perder definição e são perfeitos +para ícones de uma cor dentro do aplicativo.</li> +<li><strong>Tingimento desenhável</strong> permite definir mapas de bits como uma máscara alfa e tingi-los com +uma cor em tempo de execução.</li> +<li><strong>Extração de cor</strong> permite extrair automaticamente cores proeminentes de uma +imagem de mapa de bits.</li> +</ul> + +<p>Para obter mais informações, consulte <a href="{@docRoot}training/material/drawables.html">Como trabalhar +com desenháveis</a>.</p> diff --git a/docs/html-intl/intl/pt-br/design/patterns/confirming-acknowledging.jd b/docs/html-intl/intl/pt-br/design/patterns/confirming-acknowledging.jd new file mode 100644 index 0000000..934dbdd --- /dev/null +++ b/docs/html-intl/intl/pt-br/design/patterns/confirming-acknowledging.jd @@ -0,0 +1,70 @@ +page.title=Confirmação e reconhecimento +page.tags=dialog,toast,notification +@jd:body + +<p>Em algumas situações, quando um usuário invoca uma ação em seu aplicativo, é uma boa ideia <em>confirmar</em> ou <em>reconhecer</em> essa ação com texto.</p> + +<div class="layout-content-row"> + <div class="layout-content-col span-6"> + <img src="{@docRoot}design/media/confirm_ack_confirming.png"> + <p><strong>Confirmar</strong> é pedir ao usuário que verifique se realmente quer prosseguir com a ação que acabou de invocar. Em alguns casos, a confirmação é apresentada com uma advertência ou informações críticas relacionadas à ação que ele precisa considerar.</p> + </div> + <div class="layout-content-col span-6"> + <img src="{@docRoot}design/media/confirm_ack_acknowledge.png"> + <p><strong>Reconhecer</strong> é exibir texto para avisar ao usuário que a ação que acabou de ser invocada foi concluída. Isso remove a incerteza sobre operações implícitas que o sistema adota. Em alguns casos, o reconhecimento é apresentado com uma opção para desfazer a ação.</p> + </div> +</div> + +<p>Comunicar-se com os usuários dessas formas pode ajudar a reduzir a incerteza sobre o que aconteceu ou o que acontecerá. Confirmar ou reconhecer também pode evitar que os usuários cometam erros dos quais possam se arrepender.</p> + +<h2>Quando confirmar ou reconhecer ações do usuário</h2> +<p>Nem todas as ações precisam de uma confirmação ou um reconhecimento. Use este fluxograma para orientar as decisões de projeto.</p> +<img src="{@docRoot}design/media/confirm_ack_flowchart.png"> + +<h2>Confirmação</h2> +<div class="layout-content-row"> + <div class="layout-content-col span-6"> + <h4>Exemplo: livros do Google Play</h4> + <img src="{@docRoot}design/media/confirm_ack_ex_books.png"> + <p>Nesse exemplo, o usuário solicitou a exclusão de um livro da biblioteca do Google Play. Um <a href="{@docRoot}design/building-blocks/dialogs.html#alerts">alerta</a> aparece para confirmar essa ação porque é importante entender que o livro não estará mais disponível em nenhum dispositivo.</p> + <p>Ao montar uma caixa de diálogo de confirmação, use um título significativo que ecoe a ação solicitada.</p> + </div> + <div class="layout-content-col span-7"> + <h4>Exemplo: Android Beam</h4> + <img src="{@docRoot}design/media/confirm_ack_ex_beam.png"> + <p>As confirmações não necessariamente precisam ser apresentadas em um alerta com dois botões. Depois de iniciar o Android Beam, o usuário é solicitado a tocar no conteúdo a ser compartilhado (nesse exemplo, uma foto). Se ele decidir não prosseguir, simplesmente afastará o celular.</p> + </div> +</div> + +<h2>Reconhecimento</h2> +<div class="layout-content-row"> + <div class="layout-content-col span-6"> + <h4>Exemplo: abandonar rascunho salvo do Gmail</h4> + <img src="{@docRoot}design/media/confirm_ack_ex_draftsave.png"> + <p>Nesse exemplo, se o usuário navegar para trás ou para cima na tela de composição do Gmail, alguma coisa possivelmente inesperada acontecerá: o rascunho atual será salvo automaticamente. Um reconhecimento na forma de aviso torna isso aparente. Ele desaparece depois de alguns segundos.</p> + <p>Desfazer não é adequado aqui, pois o ato de salvar foi iniciado pelo aplicativo, não pelo usuário, Além de ser rápido e fácil retomar a composição da mensagem navegando para a lista de rascunhos.</p> + + </div> + <div class="layout-content-col span-6"> + <h4>Exemplo: conversa do Gmail excluída</h4> + <img src="{@docRoot}design/media/confirm_ack_draft_deleted.png"> + <p>Depois que o usuário exclui uma conversa da lista no Gmail, um reconhecimento aparece com a opção de desfazer. O reconhecimento permanece até que o usuário tome uma ação não relacionada, como rolar a lista.</p> + </div> +</div> + +<h2>Sem confirmação nem reconhecimento</h2> +<div class="layout-content-row"> + <div class="layout-content-col span-6"> + <h4>Exemplo: +1</h4> + <img style="padding: 33px 0 30px;" src="{@docRoot}design/media/confirm_ack_ex_plus1.png"> + <p><strong>A confirmação é desnecessária.</strong> Se o usuário usar +1 por acidente, não é um problema. Poderá simplesmente tocar no botão novamente para desfazer a ação.</p> + <p><strong>O reconhecimento é desnecessário.</strong> O usuário verá o botão +1 oscilar e ficar vermelho. Esse é um sinal muito claro.</p> + </div> + <div class="layout-content-col span-7"> + <h4>Exemplo: Remover um aplicativo da tela inicial</h4> + <img src="{@docRoot}design/media/confirm_ack_ex_removeapp.png"> + <p><strong>A confirmação é desnecessária.</strong> Essa é uma ação deliberada: o usuário precisa arrastar e soltar um item em um alvo relativamente grande e isolado. Portanto, acidentes são altamente improváveis. Mas, se o usuário se arrepender da decisão, levará apenas alguns segundos para trazê-lo de volta.</p> + <p><strong>O reconhecimento é desnecessário.</strong> O usuário saberá que o aplicativo saiu da tela inicial porque fez com que ele desaparecesse arrastando-o para longe.</p> + + </div> +</div> diff --git a/docs/html-intl/intl/pt-br/design/patterns/navigation.jd b/docs/html-intl/intl/pt-br/design/patterns/navigation.jd new file mode 100644 index 0000000..920ccec --- /dev/null +++ b/docs/html-intl/intl/pt-br/design/patterns/navigation.jd @@ -0,0 +1,213 @@ +page.title=Navegação com Voltar e Para cima +page.tags="navigation","activity","task","up navigation","back navigation" +page.image=/design/media/navigation_between_siblings_gmail.png +@jd:body + +<a class="notice-developers" href="{@docRoot}training/implementing-navigation/index.html"> + <div> + <h3>Documentos do desenvolvedor</h3> + <p>Implementação de navegação efetiva</p> + </div> +</a> + +<p itemprop="description">A navegação consistente é um componente essencial da experiência geral do usuário. Poucas coisas deixam os +usuários mais frustrados do que uma navegação básica que se comporta de forma inconsistente ou inesperada. O Android 3.0 +introduziu mudanças significativas no comportamento global da navegação. Seguir cuidadosamente as +diretrizes de Voltar e Para Cima tornará a navegação em seu aplicativo previsível e confiável para os usuários.</p> +<p>O Android 2.3 e anteriores se baseavam no botão <em>Voltar</em> do sistema para dar suporte à navegação dentro de um +aplicativo. Com a introdução de barras de ação no Android 3.0, um segundo mecanismo de navegação apareceu: +o botão <em>Para Cima</em>, consistindo no ícone do aplicativo e em um cursor para a esquerda.</p> + +<img src="{@docRoot}design/media/navigation_with_back_and_up.png"> + +<h2 id="up-vs-back">Para Cima vs. Voltar</h2> + +<p>O botão Para Cima é usado para navegar dentro de um aplicativo com base nos relacionamentos hierárquicos +entre telas. Por exemplo, se a tela A exibe uma lista de itens e, selecionar um item leva à +tela B (que apresenta aquele item em mais detalhes), então a tela B deve oferecer um botão Para Cima que +volte à tela A.</p> +<p>Se determinada tela é a superior na hierarquia de um aplicativo (ou seja, a página inicial do aplicativo), ela não deve apresentar um botão +Para Cima.</p> + +<p>O botão Voltar do sistema é usado para navegar, em ordem cronológica inversa, pelo histórico +de telas em que o usuário esteve recentemente. Ele é geralmente baseado em relacionamentos temporais +entre telas, em vez de na hierarquia do aplicativo.</p> + +<p>Quando a tela visualizada anteriormente também for a superior hierárquica imediata da tela atual, pressionar +o botão Voltar tem o mesmo resultado que pressionar um botão Para Cima — essa é uma ocorrência +comum. No entanto, diferentemente do botão Para Cima, que garante que o usuário permaneça dentro do aplicativo, o botão +Voltar pode retornar o usuário à tela inicial ou até mesmo a um aplicativo diferente.</p> + +<img src="{@docRoot}design/media/navigation_up_vs_back_gmail.png"> + +<p>O botão Voltar também suporta alguns comportamentos não vinculados diretamente à navegação entre telas: +</p> +<ul> +<li>Descarta janelas flutuantes (caixas de diálogo, pop-ups)</li> +<li>Descarta barras de ação contextuais e remove o destaque dos itens selecionados</li> +<li>Oculta o teclado da tela (IME)</li> +</ul> +<h2 id="within-app">Navegação dentro do seu aplicativo</h2> + +<h4>Navegação para telas com vários pontos de entrada</h4> +<p>Algumas vezes, uma tela não tem uma posição estrita dentro da hierarquia do aplicativo e pode ser atingida +de vários pontos de entrada — como uma tela de configurações que pode ser atingida de qualquer outra tela +do aplicativo. Nesse caso, o botão Para Cima deve escolher voltar para a tela anterior, comportando-se +de forma idêntica a Voltar.</p> +<h4>Mudança de vista dentro de uma tela</h4> +<p>Mudar opções de vista de uma tela não muda o comportamento de Para Cima nem de Voltar: a tela ainda +estará no mesmo lugar dentro da hierarquia do aplicativo e nenhum histórico de navegação será criado.</p> +<p>Exemplos de tais mudanças de vista são:</p> +<ul> +<li>Alternar vistas usando guias e/ou deslizando para a esquerda e para a direita</li> +<li>Alternar vistas usando um menu suspenso (também chamados de abas recolhidas)</li> +<li>Filtrar uma lista</li> +<li>Classificar uma lista</li> +<li>Mudar características de exibição (como mudar o zoom)</li> +</ul> +<h4>Navegação entre telas de mesmo nível</h4> +<p>Quando o aplicativo suporta navegação de uma lista de itens para uma vista de detalhes de um desses itens, +frequentemente é desejável dar suporte à navegação de direção daquele item para outro anterior ou +posterior a ele na lista. Por exemplo, no Gmail, é fácil deslizar para a esquerda ou para a direita em uma +conversa para visualizar uma mais nova ou mais antiga na mesma Caixa de entrada. Assim como ao mudar a vista dentro de uma tela, tal +navegação não muda o comportamento de Para Cima ou Voltar.</p> + +<img src="{@docRoot}design/media/navigation_between_siblings_gmail.png"> + +<p>No entanto, uma exceção notável a isso ocorre ao navegar entre vistas de detalhes relacionadas não +vinculadas pela lista de referência — por exemplo, ao navegar na Play Store entre aplicativos +do mesmo desenvolvedor ou álbuns do mesmo artista. Nesses casos, seguir cada link cria +um histórico, fazendo com que o botão Voltar passe por cada tela visualizada anteriormente. Para Cima deve continuar a +ignorar essas relacionadas e navegar para a tela do contêiner visualizada mais recentemente.</p> + +<img src="{@docRoot}design/media/navigation_between_siblings_market1.png"> + +<p>Você tem a capacidade de deixar o comportamento de Para Cima ainda mais inteligente com base em seu conhecimento da +vista de detalhe. Estendendo o exemplo da Play Store acima, imagine que o usuário navegou do último +Livro visualizado para os detalhes da adaptação do Filme. Nesse caso, Para Cima pode retornar a um contêiner +(filmes) pelo qual o usuário não navegou anteriormente.</p> + +<img src="{@docRoot}design/media/navigation_between_siblings_market2.png"> + +<h2 id="into-your-app">Navegação para o seu aplicativo pelos widgets de página inicial e notificações</h2> + +<p>Você pode usar widget de página inicial ou notificações para ajudar seus usuários a navegar diretamente para telas +profundas na hierarquia do seu aplicativo. Por exemplo, o widget Caixa de Entrada do Gmail e a notificação de nova mensagem podem +ignorar a tela Caixa de Entrada, levando o usuário diretamente a uma vista de conversa.</p> + +<p>Para esses dois casos, trate o botão Para Cima da seguinte forma:</p> + +<ul> +<li><em>Se a tela de destino é normalmente acessada de uma determinada tela dentro do +aplicativo</em>, Para Cima deve navegar para essa tela.</li> +<li><em>Caso contrário</em>, Para Cima deve navegar para a tela superior ("Página inicial") do aplicativo.</li> +</ul> + +<p>No caso do botão Voltar, você deve tornar a navegação mais previsível inserindo o caminho de navegação para cima +completo na pilha de retorno da tarefa, até a tela superior do aplicativo. Isso permite que usuários +que se esqueceram de como entraram no aplicativo naveguem para a tela superior do aplicativo +antes de saírem.</p> + +<p>Como exemplo, o widget da Página inicial do Gmail tem um botão para mergulhar diretamente para a tela +de composição. Para Cima ou Voltar na tela de composição deve levar o usuário à Caixa de Entrada e, de lá, o +botão Voltar continua até a Página inicial.</p> + +<img src="{@docRoot}design/media/navigation_from_outside_back.png"> + +<h4>Notificações indiretas</h4> + +<p>Quando o aplicativo precisa apresentar simultaneamente informações sobre vários eventos, ele pode usar +uma única notificação que direcione o usuário a uma tela intersticial. Essa tela resume esses +eventos e fornece caminhos para que o usuário mergulhe profundamente no aplicativo. Notificações desse estilo são +chamadas de <em>notificações indiretas</em>.</p> + +<p>Diferentemente de em notificações padrão (diretas), pressionar Voltar em uma tela intersticial da +notificação indireta retorna o usuário ao ponto em que a notificação foi acionada — nenhuma +tela adicional é inserida na pilha de retorno. Quando o usuário prossegue para o aplicativo a partir da +tela intersticial, Para Cima e Voltar se comportam como em notificações padrão, como descrito acima: +navegando dentro do aplicativo em vez de voltar à tela intersticial.</p> + +<p>Por exemplo, suponha que um usuário no Gmail receba uma notificação indireta do Agenda. Tocar nessa +notificação abrirá a tela intersticial, que exibirá lembretes para vários +eventos. Tocar em Voltar na tela intersticial retornará o usuário ao Gmail. Tocar em um determinado evento +levará o usuário da tela intersticial ao aplicativo completo do Agenda para exibir detalhes do +evento. Dos detalhes do evento, Para Cima e Voltar navegam para a vista de nível superior do Agenda.</p> + +<img src="{@docRoot}design/media/navigation_indirect_notification.png"> + +<h4>Notificações pop-up</h4> + +<p><em>Notificações pop-up</em> ignoram a gaveta de notificações, aparecendo diretamente na +frente do usuário. Elas são usadas raramente e <strong>devem ser reservadas para ocasiões em que uma resposta +rápida e a interrupção do contexto do usuário sejam necessárias</strong>. Por exemplo, +o Talk usa esse estilo para alertar o usuário sobre um convite de um amigo para participar de uma conversa com vídeo, já que este +convite expirará automaticamente depois de alguns segundos.</p> + +<p>Em termos do comportamento da navegação, notificações pop-up seguem de perto o comportamento da tela intersticial +de uma notificação indireta. Voltar descarta a notificação pop-up. Se o usuário navegar +da janela pop-up para o aplicativo que realizou a notificação, Para Cima e Voltar seguem as regras de notificações padrão, +navegando dentro do aplicativo.</p> + +<img src="{@docRoot}design/media/navigation_popup_notification.png"> + +<h2 id="between-apps">Navegação entre aplicativos</h2> + +<p>Um dos pontos fortes fundamentais do sistema Android é a capacidade dos aplicativos de ativar +uns aos outros, dando ao usuário a capacidade de navegar diretamente de um aplicativo para outro. Por exemplo, um +aplicativo que precisa capturar uma foto pode ativar o aplicativo Câmera, que devolverá a foto +ao aplicativo que o chamou. Esse é um imenso benefício para o desenvolvedor, que pode aproveitar +facilmente código de outros aplicativos, e para o usuário, que tem uma experiência consistente para ações +comumente realizadas.</p> + +<p>Para entender a navegação entre aplicativos, é importante entender o comportamento da estrutura de trabalho do Android +discutida abaixo.</p> + +<h4>Atividades, tarefas e intenções</h4> + +<p>No Android, uma <strong>atividade</strong> é um componente do aplicativo que define uma tela de +informações e todas as ações associadas que o usuário pode executar. Seu aplicativo é uma coleção de +atividades, consistindo em atividades que você cria e aquelas que reutiliza de outros aplicativos.</p> + +<p>Uma <strong>tarefa</strong> é a sequência de atividades que um usuário segue para atingir um objetivo. Uma +única tarefa pode usar atividades apenas de um aplicativo ou pode retirar atividades de uma série +de outros aplicativos.</p> + +<p>Uma <strong>intenção</strong> é um mecanismo para que um aplicativo sinalize que gostaria da assistência de outro +aplicativo para realizar uma ação. As atividades de um aplicativo podem indicar a que intenções +ele responde. Para intenções comuns, como "Compartilhar", o usuário pode ter vários aplicativos +instalados que atendam a essa solicitação.</p> + +<h4>Exemplo: navegação entre aplicativos para suporte a compartilhamento</h4> + +<p>Para entender como atividades, tarefas e intenções funcionam juntas, entenda como um aplicativo permite que usuários +compartilhem conteúdo usando outro aplicativo. Por exemplo, executar o aplicativo Play Store na tela inicial inicia +uma nova Tarefa A (veja a figura baixo). Depois de navegar pela Play Store e tocar em um livro em promoção +para ver os detalhes, o usuário permanecerá na mesma tarefa, estendendo-a ao adicionar atividades. Acionar +a ação Compartilhar exibe ao usuário uma caixa de diálogo listando cada uma das atividades (de diferentes aplicativos) +que foram registradas para tratar a intenção Compartilhar.</p> + +<img src="{@docRoot}design/media/navigation_between_apps_inward.png"> + +<p>Quando o usuário seleciona o compartilhamento via Gmail, a atividade de composição do Gmail é adicionada como uma continuação da +Tarefa A — nenhuma tarefa nova é criada. Se o Gmail tivesse a própria tarefa em execução em segundo plano, ela não +seria afetada.</p> + +<p>Da atividade de composição, enviar a mensagem ou tocar no botão Voltar retornará o usuário à +atividade de detalhes do livro. Toques subsequentes em Voltar continuarão a navegar para trás pela Play +Store até chegar à Página inicial.</p> + +<img src="{@docRoot}design/media/navigation_between_apps_back.png"> + +<p>No entanto, tocando em Para Cima na atividade de composição, o usuário indica que deseja permanecer no +Gmail. A atividade da lista de conversas do Gmail é exibida e uma nova Tarefa B é criada para ela. Novas tarefas +são sempre vinculadas à Página inicial, portanto, tocar em Voltar na lista de conversas retorna a ela.</p> + +<img src="{@docRoot}design/media/navigation_between_apps_up.png"> + +<p>A Tarefa A persiste no segundo plano e o usuário pode voltar a ela mais tarde (por exemplo, via tela +Recentes). Se o Gmail já tivesse a própria tarefa em execução em segundo plano, ela seria substituída +pela Tarefa B — o contexto anterior é abandonado em favor do novo objetivo do usuário.</p> + +<p>Quando o aplicativo é registrado para tratar intenções com uma atividade em um ponto profundo da hierarquia do aplicativo, +consulte <a href="#into-your-app">Navegação para o seu aplicativo pelos widgets de página +inicial e notificações</a> para ver orientações sobre como especificar a navegação Para Cima.</p> diff --git a/docs/html-intl/intl/pt-br/design/patterns/notifications.jd b/docs/html-intl/intl/pt-br/design/patterns/notifications.jd new file mode 100644 index 0000000..efea610 --- /dev/null +++ b/docs/html-intl/intl/pt-br/design/patterns/notifications.jd @@ -0,0 +1,872 @@ +page.title=Notificações +page.tags="notifications","design","L" +@jd:body + + <a class="notice-developers" href="{@docRoot}training/notify-user/index.html"> + <div> + <h3>Documentos do desenvolvedor</h3> + <p>Notificação ao usuário</p> + </div> +</a> + +<a class="notice-designers" href="notifications_k.html"> + <div> + <h3>Notificações no Android 4.4 e em anteriores</h3> + </div> +</a> + +<!-- video box --> +<a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY"> +<div> + <h3>Vídeo</h3> + <p>DevBytes: Notificações na pré-visualização do desenvolvedor do Android L</p> +</div> +</a> + +<style> + .col-5, .col-6, .col-7 { + margin-left:0px; + } +</style> + +<p>O sistema de notificações permite que os usuários se mantenham informados sobre eventos relevantes e +imediatos +no aplicativo, como novas mensagens de bate-papo de um amigo ou um evento de calendário. +Pense nas notificações como um canal de notícias que alerta o usuário sobre eventos +importantes à +medida que acontecem ou sobre um registro que grava eventos enquanto o usuário não está prestando +atenção — e que é sincronizado conforme apropriado em todos os dispositivos Android dele.</p> + +<h4 id="New"><strong>Novo no Android 5.0</strong></h4> + +<p>No Android 5.0, as notificações recebem atualizações importantes: em termos estruturais, visuais e +funcionais:</p> + +<ul> + <li>As notificações passaram por mudanças visuais consistentes com o novo +tema do Material Design.</li> + <li> As notificações agora estão disponíveis na tela de bloqueio do dispositivo, enquanto que +o conteúdo sensível ainda pode +ficar oculto atrás dela.</li> + <li>Notificações de alta prioridade recebidas enquanto o dispositivo está em uso agora usam um novo formato, chamado de +notificações heads-up.</li> + <li>Notificações sincronizadas na nuvem: descartar uma notificação em um dos +dispositivos Android a descarta +também nos outros.</li> +</ul> + +<p class="note"><strong>Observação:</strong> o projeto de notificação nesta versão do +Android é uma mudança +significativa em relação às versões anteriores. Para obter informações sobre o projeto de notificação em versões +anteriores, consulte <a href="./notifications_k.html">Notificações no Android 4.4 ou em anteriores</a>.</p> + +<h2 id="Anatomy">Anatomia de uma notificação</h2> + +<p>Esta seção aborda as partes básicas de uma notificação e como elas +podem aparecer em diferentes tipos de dispositivos.</p> + +<h3 id="BaseLayout">Layout básico</h3> + +<p>No mínimo, todas as notificações consistem em um layout básico, incluindo:</p> + +<ul> + <li> O <strong>ícone</strong> da notificação. O ícone simboliza o +aplicativo de origem. Ele também + pode indicar o tipo de notificação, caso o aplicativo gere mais de um +tipo.</li> + <li> Um <strong>título</strong> da notificação e +<strong>texto</strong> adicional.</li> + <li> Uma <strong>marcação de data e hora</strong>.</li> +</ul> + +<p>Notificações criadas com {@link android.app.Notification.Builder Notification.Builder} +para versões anteriores da plataforma têm a mesma aparência e o mesmo funcionamento no Android +5.0, com apenas mudanças menores de estilo que o sistema +entrega a você. Para obter mais informações sobre notificações em versões +anteriores do Android, consulte +<a href="./notifications_k.html">Notificações no Android 4.4 ou em anteriores</a>.</p></p> + + + <img style="margin:20px 0 0 0" src="{@docRoot}images/android-5.0/notifications/basic_combo.png" alt="" width="700px" /> + + +<div style="clear:both;margin-top:20px"> + <p class="img-caption"> + Layout básico de uma notificação em dispositivo portátil (à esquerda) e a mesma notificação em Wear (à direita), +com uma foto do usuário e um ícone de notificação + </p> + </div> + +<h3 id="ExpandedLayouts">Layouts expandidos</h3> + + +<p>Você pode escolher o nível de detalhe que as notificações de seu aplicativo +devem fornecer. Elas podem mostrar as primeiras +linhas de uma mensagem ou exibir uma visualização de imagem maior. As informações +adicionais fornecem ao usuário mais +contexto e — em alguns casos — podem permitir que o usuário leia uma mensagem +em sua totalidade. O usuário pode +pinçar para aproximar ou afastar a vista ou realizar deslizamento de um dedo para alternar entre os layouts +compacto e expandido. + Para notificações de um evento, o Android fornece três modelos de layout +expandido (texto, caixa de entrada e + imagem) para usar em seu aplicativo. As imagens a seguir mostram como +se parecem notificações de um evento em + dispositivos portáteis (à esquerda) e usados junto ao corpo (à direita).</p> + +<img style="margin-top:30px" +src="{@docRoot}images/android-5.0/notifications/expandedtext_combo.png" + alt="" width="700px" height;="284px" /> +<img style="margin-top:30px" +src="{@docRoot}images/android-5.0/notifications/stack_combo.png" + alt="" width="700px" height;="284px" /> +<img style="margin-top:30px" +src="{@docRoot}images/android-5.0/notifications/ExpandedImage.png" + alt="" width="311px" height;="450px" /> + +<h3 id="actions" style="clear:both; margin-top:40px">Ações</h3> + +<p>O Android tem suporte para ações opcionais que são exibidas na parte inferior +da notificação. +Com ações, os usuários podem tratar as tarefas mais comuns para +determinada notificação de dentro da sombra da notificação sem precisar abrir o +aplicativo de origem. +Isso acelera a interação e, em conjunto com deslizar-para-descartar, ajuda os usuários a +se concentrarem em notificações que sejam importantes.</p> + + + <img src="{@docRoot}images/android-5.0/notifications/action_combo.png" alt="" width="700px" /> + + + +<p style="clear:both">Tenha cuidado com o número de ações que inclui em uma +notificação. Quanto mais +ações incluir, maior será a complexidade cognitiva criada. Limite-se +ao menor número possível +de ações, incluindo apenas as ações efetivamente mais importantes e +significativas.</p> + +<p>Boas candidatas a ações em notificações são ações que:</p> + +<ul> + <li> Sejam essenciais, frequentes e típicas para o tipo de conteúdo +exibido + <li> Permitam que o usuário realize tarefas rapidamente +</ul> + +<p>Evite ações que sejam:</p> + +<ul> + <li> Ambíguas + <li> Idênticas à ação padrão da notificação (como "Ler" ou +"Abrir") +</ul> + + + +<p>Você pode especificar no máximo três ações, cada uma consistindo em um ícone +e um nome de ação. + Adicionar ações a um layout básico simples torna a notificação expansível, +mesmo se a +notificação não tiver um layout expandido. Como as ações são exibidas apenas para notificações +expandidas + e que ficam de outra forma ocultas, certifique-se de que qualquer ação que um +usuário possa invocar de dentro de uma + notificação esteja disponível também dentro do aplicativo +associado.</p> + +<h2 style="clear:left">Notificação heads-up</h2> +<div class="figure" style="width:311px"> + <img src="{@docRoot}images/android-5.0/notifications/hun-example.png" alt="" width="311px" /> + <p class="img-caption"> + Exemplo de uma notificação heads-up (chamada telefônica recebida, alta prioridade) +que aparece sobre um +aplicativo imersivo + </p> +</div> + +<p>Quando uma notificação de alta prioridade chega (veja à direita), ela é apresentada +aos usuários por +um período curto com um layout expandido mostrando possíveis ações.</p> +<p> Depois desse período, a notificação recua para a sombra +de notificação. Se a <a href="#correctly_set_and_manage_notification_priority">prioridade</a> de uma notificação for +marcada como Alta, Máxima ou tela cheia, ela receberá uma notificação heads-up.</p> + +<p><b>Bons exemplos de notificações heads-up</b></p> + +<ul> + <li> Chamada telefônica recebida durante o uso do dispositivo</li> + <li> Alarme durante o uso do dispositivo</li> + <li> Nova mensagem SMS</li> + <li> Bateria fraca</li> +</ul> + +<h2 style="clear:both" id="guidelines">Diretrizes</h2> + + +<h3 id="MakeItPersonal">Torne-a pessoal</h3> + +<p>Para notificações de itens enviados por outra pessoa (como uma mensagem ou +atualização de status), inclua a imagem da pessoa usando +{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()}. Anexe também informações sobre +a pessoa nos metadados da notificação (consulte {@link android.app.Notification#EXTRA_PEOPLE}).</p> + +<p>O ícone principal de sua notificação ainda é mostrado, portanto, o usuário pode associá-lo +ao ícone +visível na barra de status.</p> + + +<img src="{@docRoot}images/android-5.0/notifications/Triggered.png" alt="" width="311px" /> +<p style="margin-top:10px" class="img-caption"> + Notificação que mostra a pessoa que a ativou e o conteúdo enviado. +</p> + + +<h3 id="navigate_to_the_right_place">Navegação para o lugar certo</h3> + +<p>Quando o usuário toca no corpo de uma notificação (fora dos botões +de ação), abra o aplicativo +no lugar em que o usuário possa visualizar e agir sobre os dados referenciados na +notificação. Na maioria dos casos, será a exibição detalhada de um único item de dado, como uma mensagem, +mas também poderá ser uma +vista resumida se a notificação estiver empilhada. Se o aplicativo +levar o usuário a qualquer lugar abaixo do nível superior do aplicativo, insira a navegação na pilha de retorno do aplicativo para que +o usuário possa pressionar o botão Voltar do sistema para voltar ao nível superior. Para obter mais informações, consulte +<em>Navegação para o seu aplicativo pelos widgets de página inicial e notificações</em> no padrão de projeto de <a href="{@docRoot}design/patterns/navigation.html#into-your-app">Navegação</a>. +</p> + +<h3 id="correctly_set_and_manage_notification_priority">Definição e gerenciamento +corretos da prioridade das +notificações</h3> + +<p>O Android tem suporte para um sinalizador de prioridade para notificações. Esse sinalizador permite +influenciar o local em que a notificação é exibida em relação a outras notificações e +ajuda a garantir +que os usuários sempre vejam primeiro as notificações mais importantes. Você pode escolher entre +os seguintes +níveis de prioridade ao publicar uma notificação:</p> +<table> + <tr> + <td class="tab0"> +<p><strong>Prioridade</strong></p> +</td> + <td class="tab0"> +<p><strong>Uso</strong></p> +</td> + </tr> + <tr> + <td class="tab1"> +<p><code>MAX</code></p> +</td> + <td class="tab1"> +<p>Use para notificações críticas e urgentes que alertam o usuário sobre uma condição +que depende +do tempo ou que precisa ser resolvida antes que o usuário possa continuar +com uma determinada tarefa.</p> +</td> + </tr> + <tr> + <td class="tab1"> +<p><code>HIGH</code></p> +</td> + <td class="tab1"> +<p>Use principalmente para comunicações importantes, como uma mensagem ou +eventos de bate-papo com conteúdo particularmente interessante para o usuário. +Notificações de alta prioridade acionam a exibição de uma notificação heads-up.</p> +</td> + </tr> + <tr> + <td class="tab1"> +<p><code>DEFAULT</code></p> +</td> + <td class="tab1"> +<p>Use para todas as notificações que não recaiam em nenhuma das outras prioridades descritas aqui.</p> +</td> + </tr> + <tr> + <td class="tab1"> +<p><code>LOW</code></p> +</td> + <td class="tab1"> +<p>Use para notificações sobre as quais deseja que o usuário seja informado, mas +que sejam menos urgentes. Notificações de baixa prioridade tendem a ser exibidas na parte inferior da lista, +o que as torna uma boa +opção para coisas como atualizações públicas ou sociais não direcionadas: o usuário pediu para +ser notificado sobre +elas, mas essas notificações nunca devem ter precedência sobre comunicações +urgentes ou diretas.</p> +</td> + </tr> + <tr> + <td class="tab1"> +<p><code>MIN</code></p> +</td> + <td class="tab1"> +<p>Use para informações contextuais ou de histórico, como informações sobre clima ou +informações contextuais de localização. +Notificações de prioridade mínima não aparecem na barra de status. O usuário +as descobre expandindo a sombra da notificação.</p> +</td> + </tr> +</table> + + +<h4 id="how_to_choose_an_appropriate_priority"><strong>Como escolher uma prioridade +adequada +</strong></h4> + +<p><code>DEFAULT</code>, <code>HIGH</code> e <code>MAX</code> são níveis de prioridade de interrupção e arriscam +interromper a atividade +do usuário. Para evitar irritar os usuários de seu aplicativo, reserve níveis de prioridade de interrupção para +notificações que:</p> + +<ul> + <li> Envolvam outra pessoa</li> + <li> Dependam do tempo</li> + <li> Possam mudar imediatamente o comportamento do usuário no mundo real</li> +</ul> + +<p>Notificações definidas como <code>LOW</code> e <code>MIN</code> ainda podem +ser valiosas para o usuário: muitas, se não a maioria, das notificações não precisam demandar a atenção +imediata do usuário, ou vibrar o pulso do usuário, mas ainda contêm informações que o usuário +achará valiosas ao decidir procurar +notificações. Os critérios para notificações de prioridade <code>LOW</code> e <code>MIN</code> +incluem:</p> + +<ul> + <li> Não envolver outras pessoas</li> + <li> Não depender de tempo</li> + <li> Ter conteúdo no qual o usuário pode estar interessado, mas que pode decidir +verificar no momento em que desejar</li> +</ul> + + + <img src="{@docRoot}images/android-5.0/notifications/notifications_pattern_priority.png" alt="" width="700" /> + + +<h3 style="clear:both" id="set_a_notification_category">Definição de uma categoria +de notificação</h3> + +<p>Se a sua notificação recair em uma das categorias predefinidas (veja +abaixo), atribua-a +adequadamente. Aspectos da IU do sistema, como a sombra da notificação (ou qualquer +outra escuta +de notificação), podem usar essas informações para tomar decisões de classificação e filtragem.</p> +<table> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p> +</td> + <td> +<p>Chamada recebida (voz ou vídeo) ou solicitação similar de +comunicação síncrona</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p> +</td> + <td> +<p>Mensagem direta recebida (SMS, mensagem instantânea etc.)</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_EMAIL">CATEGORY_EMAIL</a></code></p> +</td> + <td> +<p>Mensagens assíncronas em lote (e-mail)</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_EVENT">CATEGORY_EVENT</a></code></p> +</td> + <td> +<p>Evento de calendário</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p> +</td> + <td> +<p>Promoção ou publicidade</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p> +</td> + <td> +<p>Alarme ou cronômetro</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p> +</td> + <td> +<p>Andamento de uma operação de execução longa em segundo plano</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p> +</td> + <td> +<p>Atualização de rede social ou de compartilhamento</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p> +</td> + <td> +<p>Erro em operação de segundo plano ou no status de autenticação</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p> +</td> + <td> +<p>Controle de transporte de mídia para reprodução</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p> +</td> + <td> +<p>Atualização do sistema ou do status do dispositivo. Reservado para uso do sistema.</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_SERVICE">CATEGORY_SERVICE</a></code></p> +</td> + <td> +<p>Indicação de serviço de segundo plano em execução</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p> +</td> + <td> +<p>Uma recomendação específica e oportuna para uma única coisa. Por exemplo, um aplicativo +de notícias pode querer +recomendar uma notícia que acredita que o usuário desejará ler em seguida.</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p> +</td> + <td> +<p>Informações contínuas sobre o dispositivo ou o status contextual</p> +</td> + </tr> +</table> + +<h3 id="summarize_your_notifications">Resuma as notificações</h3> + +<p>Se uma notificação de um certo tipo já estiver pendente quando o aplicativo tentar enviar uma nova +notificação do mesmo tipo, combine-as em uma única notificação de resumo para o aplicativo. Não +crie um novo objeto.</p> + +<p>Uma notificação de resumo cria uma descrição resumida e permite que o +usuário entenda quantas notificações +de um determinado tipo estão pendentes.</p> + +<div class="col-6"> + +<p><strong>O que não fazer</strong></p> + <img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png" alt="" width="311px" /> +</div> + +<div> +<p><strong>O que fazer</strong></p> + + <img src="{@docRoot}images/android-5.0/notifications/Summarise_Do.png" alt="" width="311px" /> +</div> + +<p style="clear:left; padding-top:30px; padding-bottom:20px">Você pode fornecer +mais detalhes sobre as notificações individuais que compõem um +resumo usando o layout resumido expandido. Essa abordagem permite que os usuários +entendam melhor quais +notificações estão pendentes e decidam se estão interessados o suficiente para lê-las +em detalhes dentro +do aplicativo associado.</p> +<div class="col-6"> + <img src="{@docRoot}images/android-5.0/notifications/Stack.png" style="margin-bottom:20px" alt="" width="311px" /> + <p class="img-caption"> + Notificação expandida e contraída que é um resumo (usando <code>InboxStyle</code>) + </p> +</div> + +<h3 style="clear:both" id="make_notifications_optional">Torne as notificações +opcionais</h3> + +<p>Os usuários devem sempre controlar as notificações. Permita que o usuário +desative as notificações +de seu aplicativo ou altere as propriedades de alerta, como som de alerta e +se a vibração será usada, +adicionando um item de configuração da notificação nas configurações do aplicativo.</p> + +<h3 id="use_distinct_icons">Use ícones distintos</h3> +<p>Ao olhar para a área de notificação, o usuário deverá ser capaz de discernir +que tipos de +notificações estão atualmente pendentes.</p> + +<div class="figure"> + <img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png" alt="" width="420" /> +</div> + + <div><p><strong>O que fazer</strong></p> + <p>Verifique os ícones de notificação que os aplicativos do Android já fornecem e crie +ícones de notificação para o seu +aplicativo que tenham aparência suficientemente distinta.</p> + + <p><strong>O que fazer</strong></p> + <p>Use o <a href="/design/style/iconography.html#notification">estilo de ícone de notificação</a> apropriado + para ícones pequenos e o + <a href="/design/style/iconography.html#action-bar">estilo de ícone de barra +de ação</a> da luminosidade do Material para os ícones + de ação.</p> +<p ><strong>O que fazer</strong></p> +<p >Mantenha os ícones visualmente simples, evitando detalhes excessivos que sejam +difíceis de discernir.</p> + + <div><p><strong>O que não fazer</strong></p> + <p>Coloque um alfa adicional (esmaecimento ou redução de intensidade) nos ícones pequenos +e nos ícones de + ação; eles podem ter bordas suavizadas, mas, como o Android usa esses +ícones como máscaras (ou seja, somente + o canal alfa é usado), a imagem normalmente deve ser desenhada com +opacidade total.</p> + +</div> +<p style="clear:both"><strong>O que não fazer</strong></p> + +<p>Use cores para distinguir o seu aplicativo dos outros. Ícones de notificação devem +somente ser uma imagem com fundo branco sobre transparente.</p> + + +<h3 id="pulse_the_notification_led_appropriately">Pisque o LED de notificação +adequadamente</h3> + +<p>Muitos dispositivos Android contêm um LED de notificação, que é usado para manter o +usuário informado sobre +eventos enquanto a tela está desligada. Notificações com um nível de prioridade de <code>MAX</code>, +<code>HIGH</code> ou <code>DEFAULT</code> devem +fazer com que o LED brilhe, enquanto que os de prioridade mais baixa (<code>LOW</code> e +<code>MIN</code>) não devem.</p> + +<p>O controle do usuário sobre as notificações deve se estender ao LED. Ao usar +DEFAULT_LIGHTS, o +LED brilhará na cor branca. Suas notificações não devem usar uma cor +diferente, a não ser que o +usuário as tenha explicitamente personalizado.</p> + +<h2 id="building_notifications_that_users_care_about">Criação de notificações +que agradam aos usuários</h2> + +<p>Para criar um aplicativo que os usuários amem, é importante projetar as +notificações cuidadosamente. +As notificações personificam a voz do seu aplicativo e contribuem para +a personalidade dele. Notificações indesejadas ou +irrelevantes podem irritar o usuário ou fazer com que ele reprove a +quantidade de atenção que o +aplicativo exige. Portanto, use notificações de forma cuidadosa.</p> + +<h3 id="when_to_display_a_notification">Quando exibir uma notificação</h3> + +<p>Para criar um aplicativo que as pessoas gostem de usar, é importante +reconhecer que a atenção e o foco +do usuário são recursos que devem ser protegidos. Apesar de o sistema de +notificação do Android ter +sido projetado para minimizar o impacto das notificações na atenção do usuário, +ainda é +importante ter ciência do fato de que as notificações interrompem o +fluxo de tarefas do usuário. +Ao planejar as notificações, pergunte-se se elas são importantes o suficiente para +justificar uma interrupção. Se não tiver certeza, permita que o usuário decida se quer +uma notificação usando as configurações de notificação do seu aplicativo ou ajuste +o sinalizador de prioridade das notificações para <code>LOW</code> ou <code>MIN</code> para +evitar distrair o usuário enquanto ele faz +alguma outra coisa.</p> + + <img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png" alt="" width="311px" /> + <p style="margin-top:10px" class="img-caption"> + Exemplos de notificação que depende de tempo + </p> + +<p>Apesar de aplicativos bem comportados geralmente se manifestarem apenas quando ocorre interação com eles, alguns +casos justificam que o aplicativo interrompa o usuário com uma notificação não solicitada.</p> + +<p>Use notificações principalmente para <strong>eventos que dependam de tempo</strong>, especialmente + se esses eventos síncronos <strong>envolverem outras pessoas</strong>. Por +exemplo, um bate-papo recebido +é uma forma síncrona em tempo real de comunicação: outro usuário +espera ativamente a resposta. Eventos de calendário são outro exemplo bom de quando usar uma +notificação e atrair a +atenção do usuário, pois o evento é iminente e eventos de calendário frequentemente +envolvem outras pessoas.</p> + +<h3 style="clear:both" id="when_not_to_display_a_notification">Quando não exibir +uma notificação</h3> + +<div class="figure" style="margin-top:60px"> + <img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png" alt="" width="311px" /> +</div> + +<p>Em muitos outros casos, notificações não são adequadas:</p> + +<ul> + <li> Evite notificar o usuário sobre informações que não são especificamente +direcionadas a ele ou +que não dependam realmente de tempo. Por exemplo, as atualizações +assíncronas e não direcionadas +que fluem por uma rede social geralmente não justificam uma interrupção +em tempo real. Para os usuários que se importam +com elas, deixe que decidam recebê-las.</li> + <li> Não crie uma notificação se as informações novas relevantes estiverem +atualmente na tela. Em vez disso, +use a IU do próprio aplicativo para notificar o usuário das novas informações +diretamente no contexto. + Por exemplo, um aplicativo de bate-papo não deve criar notificações de sistema enquanto o +usuário estiver conversando ativamente com outro usuário.</li> + <li> Não interrompa o usuário para realizar operações técnicas de baixo nível, como salvar +ou sincronizar informações, nem atualize um aplicativo se o aplicativo ou o sistema puder resolver +o problema sem envolver o usuário.</li> + <li> Não interrompa o usuário para informar um erro se o aplicativo +puder se recuperar dele por conta própria, sem que o usuário +tome qualquer ação.</li> + <li> Não crie notificações que não tenham conteúdo real de notificação e +que meramente anunciem o seu +aplicativo. Uma notificação deve fornecer informações úteis, oportunas e novas e +não deve ser usada +meramente para executar um aplicativo.</li> + <li> Não crie notificações supérfluas apenas para colocar sua marca na frente +dos usuários. + Tais notificações frustram e provavelmente alienam seu público-alvo. A +melhor forma de fornecer + pequenas quantidades de informações atualizadas e manter o usuário envolvido +com o seu + aplicativo é desenvolver um widget que ele possa colocar na +tela inicial.</li> +</ul> + +<h2 style="clear:left" id="interacting_with_notifications">Interação com +notificações</h2> + +<p>Notificações são indicadas por ícones na barra de status e podem ser acessadas +abrindo a +gaveta de notificações.</p> + +<p>Tocar em uma notificação abre o aplicativo associado com o conteúdo +detalhado que corresponde à notificação. +Deslizar à esquerda ou à direita em uma notificação a remove da gaveta.</p> + +<h3 id="ongoing_notifications">Notificações contínuas</h3> +<div class="figure" style="width:311px"> + <img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png" alt="" width="311px" /> + <p class="img-caption"> + Notificação contínua devido à reprodução de música + </p> +</div> +<p>Notificações contínuas mantêm os usuários informados sobre um processo em andamento em +segundo plano. +Por exemplo, reprodutores de música anunciam a faixa em reprodução no +sistema de notificação e +continuam a fazer isso até que o usuário interrompa a reprodução. Notificações contínuas também podem +mostrar ao usuário +feedback sobre tarefas mais longas, como o download de um arquivo ou a codificação de um vídeo. Um usuário não pode remover +manualmente uma notificação contínua da gaveta de notificações.</p> + +<h3 id="ongoing_notifications">Reprodução de mídia</h3> +<p>No Android 5.0, a tela de bloqueio não mostra controles de transporte por causa da classe +{@link android.media.RemoteControlClient} obsoleta. Mas ela <em>mostra</em> notificações, portanto, a notificação de reprodução +de cada aplicativo agora é a forma +principal para que os usuários controlem a reprodução em um estado bloqueado. Esse comportamento dá aos aplicativos mais +controle sobre quais +botões exibir e de que forma, ao mesmo tempo em que fornece uma experiência consistente +para o usuário, com a tela bloqueada ou não.</p> + +<h3 style="clear:both" +id="dialogs_and_toasts_are_for_feedback_not_notification">Diálogos +e avisos</h3> + +<p>O seu aplicativo não deve criar uma caixa de diálogo ou um aviso se não estiver +atualmente na tela. Uma caixa de diálogo ou um aviso + deve ser exibido somente como uma resposta imediata ao usuário tomando uma ação +dentro do seu aplicativo. +Para obter orientação adicional sobre o uso de caixas de diálogo e avisos, consulte +<a href="/design/patterns/confirming-acknowledging.html">Confirmação e reconhecimento</a>.</p> + +<h3>Avaliação e classificação</h3> + +<p>Notificações são notícias e, portanto, são essencialmente exibidas +em ordem cronológica inversa, com +consideração especial para a +<a href="#correctly_set_and_manage_notification_priority">prioridade</a> da notificação declarada no aplicativo.</p> + +<p>Notificações são uma parte importante da tela de bloqueio e são exibidas proeminentemente +sempre +que a tela do dispositivo é exibida. O espaço na tela de bloqueio é restrito, portanto, +é mais importante +do que nunca identificar as notificações mais urgentes ou relevantes. Por esse +motivo, o Android tem um +algoritmo de classificação mais sofisticado para notificações, levando em conta:</p> + +<ul> + <li> A marcação de data e hora e a prioridade declarada no aplicativo.</li> + <li> Se a notificação incomodou recentemente o usuário com som ou +vibração (ou seja, + se o celular acabou de fazer um ruído e o usuário deseja saber "O que acabou de +acontecer?", a tela de bloqueio + deve responder com um olhar rápido).</li> + <li> Qualquer pessoa anexada à notificação usando {@link android.app.Notification#EXTRA_PEOPLE} + e, em particular, se é contato especial (com estrelas).</li> +</ul> + +<p>Para aproveitar ao máximo essa classificação, concentre-se na experiência +do usuário que deseja +criar, e não em um determinado local na lista.</p> + + <img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png" alt="" width="700px" /> + + <p class="img-caption" style="margin-top:10px">Notificações do Gmail têm +prioridade padrão e normalmente + são classificadas abaixo de mensagens de um aplicativo de mensagem instantânea, como o Hangouts, mas +recebem + uma promoção temporária quando novas mensagens chegam. + </p> + + +<h3>Na tela de bloqueio</h3> + +<p>Como as notificações são visíveis na tela de bloqueio, a privacidade do usuário é uma consideração +especialmente + importante. Notificações frequentemente contêm informações sensíveis e +não devem necessariamente estar visíveis +para qualquer pessoa que ligar a tela do dispositivo.</p> + +<ul> + <li> Para dispositivos que têm uma tela de bloqueio segura (PIN, padrão ou senha), a interface tem +partes públicas e privadas. A interface pública pode ser exibida em uma tela de bloqueio segura e, +portanto, vista por qualquer pessoa. A interface privada é o mundo atrás da tela de bloqueio e +só é revelada depois que o usuário faz login no dispositivo.</li> +</ul> + +<h3>Controle do usuário sobre as informações exibidas na tela de bloqueio segura</h3> +<div class="figure" style="width:311px"> + <img src="{@docRoot}images/android-5.0/notifications/LockScreen@2x.png" srcset="{@docRoot}images/android-5.0/notifications/LockScreen.png 1x" alt="" width="311px" /> + <p class="img-caption"> + Notificações na tela de bloqueio com conteúdo revelado depois que o usuário desbloqueia o dispositivo. + </p> +</div> + +<p>Ao definir uma tela de bloqueio segura, o usuário poderá escolher ocultar +detalhes sensíveis da tela de bloqueio segura. Nesse caso, a IU do sistema +considerará o <em>nível de visibilidade</em> da notificação para descobrir o que pode +ser exibido com segurança.</p> +<p> Para controlar o nível de visibilidade, chame +<code><a +href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code> +e especifique um destes valores:</p> + +<ul> + <li><code><a +href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>. +Exibe o conteúdo inteiro da notificação. + Esse é o padrão do sistema se a visibilidade não for especificada.</li> + <li><code><a +href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>. +Na tela de bloqueio, exibe informações básicas sobre essa notificação, incluindo o +ícone e o nome do aplicativo que a publicou. O restante dos detalhes da notificação não é exibido. +Alguns pontos a ter em mente são: + <ul> + <li> Se você quer fornecer uma versão pública diferente da sua notificação +para que o sistema a exiba em uma tela de bloqueio segura, forneça um objeto +Notificação substituto no campo <code><a +href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code>. + + <li> Essa configuração dá ao aplicativo uma oportunidade de criar uma versão alternativa do +conteúdo que ainda é útil, mas não revela informações pessoais. Considere o exemplo de um +aplicativo de SMS cujas notificações incluem o texto da mensagem SMS, o nome do remetente e o ícone do contato. +Essa notificação deve ser <code>VISIBILITY_PRIVATE</code>, mas <code>publicVersion</code> ainda pode +conter informações úteis, como "3 novas mensagens", sem outros detalhes +de identificação. + </ul> + </li> + <li><code><a +href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</a></code>. Mostra apenas as informações mínimas, excluindo até mesmo +o ícone da notificação.</li> +</ul> +<h2 style="clear:both" id="notifications_on_android_wear">Notificações no +Android Wear</h2> + +<p>Notificações e suas <em>ações</em> são enviadas a dispositivos Wear por padrão. +Os desenvolvedores podem controlar que notificações são enviadas do +celular ao relógio +e vice-versa. Os desenvolvedores também podem controlar quais ações são transmitidas. Se o +seu aplicativo inclui +ações que não podem ser executadas com um toque, oculte essas ações +na sua notificação do Wear +ou considere colocá-las em um aplicativo do Wear, permitindo que o usuário +termine a ação +no relógio.</p> + +<h4>Transmissão de notificações e ações</h4> + +<p>Um dispositivo conectado, como um celular, pode transmitir notificações para um dispositivo Wear para que as +notificações sejam exibidas nele. De forma similar, ele pode transmitir ações para que o usuário possa agir +sobre as notificações diretamente do dispositivo Wear.</p> + +<p><strong>Transmitir</strong></p> + +<ul> + <li> Novas mensagens instantâneas</li> + <li> Ações de um toque, como +1, Curtir, Coração</li> +</ul> + +<img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px" height="156px" alt="" /> + +<p><strong>Não transmitir</strong></p> + +<ul> + <li> Notificações de podcasts recém-chegados</li> + <li> Ações que mapeiem para recursos que não são possíveis no relógio</li> +</ul> + + + +<p><h4>Ações exclusivas a definir para Wear</h4></p> + +<p>Há algumas ações que só podem ser realizadas em Wear. Elas incluem:</p> + +<ul> + <li> Listas rápidas de respostas prontas, como "Volto logo"</li> + <li> Abrir no celular</li> + <li> Uma ação "Comentar" ou "Responder" que abre a tela de entrada de voz</li> + <li> Ações que executam aplicativos específicos de Wear</li> +</ul> + +<img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px" height="156px" alt="" /> |