As imersões oferecem mais maneiras de consumir entradas do usuário e criar interfaces de usuário. Isso permite criar a experiência mais personalizada, mas envolve mais trabalho.
Se esta é a primeira vez que você desenvolve para o Glass, leia o guia de imersão. Este documento mostra como criar um Glassware completo com imersões, seguindo nossas práticas recomendadas de design.
Como funcionam
As imersões são exibidas fora da linha do tempo, oferecendo controle total sobre a experiência do usuário desde o momento em que o Glass inicia a imersão.
Crie imersões com atividades, layouts, widgets de IU e o restante da plataforma Android. Em seguida, use o GDK para integrar à experiência do Google Glass, como comandos de voz, cartões com estilo do Google Glass e muito mais.
Quando as imersões começam, elas aparecem na parte de cima da linha do tempo. Quando os usuários terminam de usar uma imersão, deslizam para baixo.
Quando usar os recursos
As imersões são ótimas para experiências que exigem atenção prolongada do usuário. Eles permitem que você crie uma IU especializada que aparece fora da linha do tempo, para que os usuários possam se aprofundar em uma experiência personalizada.
As imersões também são necessárias quando você precisa substituir recursos específicos da linha do tempo, como deslizar para frente e para trás e controlar o tempo limite da tela.
No entanto, use imersões somente se for necessário, porque elas exigem mais trabalho para a criação e mais tempo para o design. Os cards em tempo real oferecem recursos e recursos suficientes para a maioria dos tipos de Glasswares.
Como criar imersões
Você cria imersões usando atividades padrão do Android, mas lembre-se do seguinte ao programar atividades para o Glass:
- Projete suas IUs para uma tela de 640 x 360 pixels.
- Crie interações que façam sentido no Google Glass em vez de transferir de atividades de outros dispositivos Android.
- Não confie em gestos de toque complexos ou padrões de IU.
- Deslizar para baixo sempre volta para a pilha de atividades até que os usuários atinjam a linha do tempo. Ele funcionará como o botão "Voltar" do Android em smartphones e tablets.
- Crie um ícone de 50 × 50 pixels e especifique-o para o atributo
android:icon
do elemento<activity>
no manifesto do Android. Especifique também o texto deandroid:label
. Isso permite que um item de menu de voz ou toque associado a vários Glassware mostre o nome e o ícone do Glassware como uma opção. - Especifique
android:immersive="true"
para o elemento<activity>
para que o foco seja mostrado depois que uma tela for suspensa e acorda.
Como criar e exibir um menu
O Google Glass vai exibir o estilo correto para menus se você os criar com as APIs de menu padrão do Android dentro de uma atividade.
Para exibir um menu para uma atividade, crie recursos de menu e os exiba em uma ação do usuário, como um toque quando a atividade estiver em foco.
Como criar recursos de menu
A criação de recursos de menu é a mesma usada na plataforma Android, mas siga estas diretrizes:
- Para cada item, forneça um ícone de menu de 50 x 50 pixels. O ícone do menu precisa ser branco com um fundo transparente. Faça o download dos ícones do menu do Google Glass para uso ou como exemplo.
- Use uma frase curta que descreva a ação e esteja em letra maiúscula. Um verbo imperativo funciona bem (por exemplo, "Compartilhar" ou "Responder a todos").
Veja um exemplo simples para começar:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/reply_menu_item"
android:title="@string/reply" <!-- imperative verb -->
android:icon="@drawable/icons_50_reply" /> <!-- white in color on
transparent background
-->
</menu>
Para mais informações sobre como criar menus do Android, consulte o tópico Menu na documentação do SDK do Android.
Como processar callbacks de menu
A classe Activity
contém callbacks que você substitui para processar a criação, a exibição e a desmontagem do menu:
onCreateOptionsMenu()
infla o recurso do menu XML.onPrepareOptionsMenu()
mostra ou oculta itens de menu se necessário. Por exemplo, é possível mostrar itens de menu diferentes com base no que os usuários estão fazendo.O
onOptionsItemSelected()
processa a seleção do usuário.public class MyActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.stopwatch, menu); return true; } @Override public boolean onPrepareOptionsMenu(Menu menu) { // Implement if needed } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection. Menu items typically start another // activity, start a service, or broadcast another intent. switch (item.getItemId()) { case R.id.stop: startActivity(new Intent(this, StopStopWatchActivity.class)); return true; default: return super.onOptionsItemSelected(item); } } }
Como mostrar o cardápio
Para exibir o menu, chame
openOptionsMenu()
quando necessário, como um toque no touchpad. Os exemplos abaixo detectam
um gesto de toque em uma atividade e chamam openOptionsMenu()
.
public class MainActivity extends Activity {
// ...
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
openOptionsMenu();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
Utilitários de menu
Alguns métodos auxiliares estão disponíveis para modificar a aparência e o comportamento dos menus. Consulte MenuUtils
para ver mais informações.