A immersione

Le immersioni ti offrono altri modi per utilizzare l'input utente e creare interfacce utente. In questo modo puoi creare l'esperienza più personalizzata, ma prevede il massimo di lavoro.

Se è la prima volta che sviluppi contenuti per Glass, consulta la guida all'immersione. Il documento illustra come creare un Glassware completo con le immersioni, seguendo le nostre best practice per la progettazione.

Funzionamento

Le visualizzazioni vengono visualizzate al di fuori della sequenza temporale per un controllo completo sull'esperienza utente dal momento in cui Glass avvia l'immersione.

Puoi creare le importazioni con attività e layout standard, widget dell'UI di Android e il resto della piattaforma Android. Puoi quindi utilizzare il GDK per integrarlo nell'esperienza Glass, ad esempio con l'integrazione di comandi vocali, schede in stile Glass e altro ancora.

All'inizio delle immersioni, compaiono sopra la sequenza temporale. Quando gli utenti hanno un'immersione, tornano indietro scorrendo verso il basso.

Quando utilizzarli

Le immersioni sono ideali per le esperienze che richiedono un'attenzione prolungata da parte dell'utente. Consentono di creare un'interfaccia utente specializzata che viene visualizzata al di fuori della sequenza temporale, in modo che gli utenti possano approfondire l'esperienza personalizzata.

Le immersioni sono inoltre necessarie quando devi sovrascrivere una funzionalità specifica della sequenza temporale, ad esempio scorrendo avanti e indietro e controllando il timeout dello schermo.

Tuttavia, usa le immersioni solo se necessario, perché richiedono più lavoro per la creazione e più tempo per una buona progettazione. Le schede pubblicate offrono funzionalità e funzionalità sufficienti per la maggior parte dei tipi di vetri.

Creazione di immersioni

Puoi creare le immersioni utilizzando le attività Android standard, ma tieni presente quanto segue quando scrivi le attività per Glass:

  • Progetta le interfacce utente per uno schermo da 640 × 360 pixel.
  • Progetta interazioni utili per Glass, anziché trasferire attività da altri dispositivi Android.
  • Non fare affidamento su complessi gesti di tocco o pattern dell'interfaccia utente.
  • Scorri sempre verso il basso nell'elenco di attività finché gli utenti non raggiungono la sequenza temporale. Dovrebbe funzionare come il pulsante Indietro di Android su smartphone e tablet.
  • Crea un'icona 50 × 50 pixel e specificala per l'attributo android:icon dell'elemento <activity> nel file manifest Android. Specifica anche il testo per android:label. Ciò consente a una voce del menu vocale o touch associata a più Glassware di mostrare il nome e l'icona degli Glassware come opzione.
  • Specifica android:immersive="true" per l'elemento <activity> per impostare le immersioni dopo la sospensione e la riattivazione dello schermo.

Creare e visualizzare un menu

Glass mostra gli stili corretti dei menu se li crei con le API di menu standard di Android all'interno di un'attività.

Per visualizzare un menu per un'attività, crea risorse di menu e mostrale in un'azione utente, ad esempio un tocco quando l'attività è attiva.

Creazione delle risorse di menu in corso...

La creazione di risorse di menu è la stessa della piattaforma Android, ma segui queste linee guida:

  • Per ogni voce di menu, fornisci un'icona da 50 × 50 pixel. L'icona del menu deve essere di colore bianco su sfondo trasparente. Scarica le icone del menu Glass da usare o come esempio.
  • Utilizza una frase breve che descriva l'azione e sia in maiuscolo. Un verbo imperativo funziona bene (ad esempio, "Condividi" o "Rispondi a tutti").

Ecco un suggerimento semplice per iniziare:

<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>

Per ulteriori informazioni sulla creazione di menu Android, consulta l'argomento Menu nella documentazione dell'SDK Android.

Gestire i callback del menu

La classe Activity contiene callback che esegui l'override per gestire la creazione, la visualizzazione e la suddivisione dei menu:

  1. onCreateOptionsMenu() gonfia la risorsa del menu XML.
  2. onPrepareOptionsMenu() mostra o nasconde le voci di menu, se necessario. Ad esempio, puoi mostrare diverse voci di menu in base a ciò che fanno gli utenti.
  3. onOptionsItemSelected() gestisce la selezione degli utenti.

    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);
            }
        }
    }
    

Visualizzazione del menu

Per visualizzare il menu, chiama openOptionsMenu() quando necessario, ad esempio toccando il touchpad. Gli esempi seguenti rilevano un gesto di tocco su un'attività, quindi chiama 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);
    }
}

Sono disponibili alcuni metodi di supporto per modificare l'aspetto e il comportamento dei menu. Per ulteriori informazioni, consulta la pagina MenuUtils.