Panoramica

Utilizza Scalable UI per creare esperienze utente sofisticate, dinamiche e multi-pannello nelle auto. UI scalabile:

  • Fornisce un sistema di finestre flessibile.

  • Riduce al minimo i rischi, i costi e le complessità di ingegneria presentati dalla Compatibility Test Suite (CTS) per le implementazioni dell'interfaccia utente.

L'interfaccia utente scalabile supporta un'ampia gamma di design moderni per l'infotainment in-vehicle (IVI) che richiedono disposizioni dinamiche delle finestre.

Vantaggi e conformità

I vantaggi dell'interfaccia utente scalabile includono:

  • Rischio di test inferiore: il framework è pre-certificato e conforme al CTS, il che elimina il rischio principale di errori di test alla fine di un ciclo di programma. L'interfaccia utente scalabile può farti risparmiare mesi di lavoro di ingegneria e accelerare la conformità.

  • Maggiore flessibilità di progettazione: capacità comprovata di ricreare numerosi modelli di finestrini per auto complessi esistenti. L'interfaccia utente scalabile supporta design ambiziosi e altamente differenziati.

  • Minore complessità di implementazione: l'astrazione in un modello XML di alto livello basato sulla configurazione riduce la barriera all'ingresso per la logica di finestratura personalizzata.

  • Prestazioni migliori: l'interfaccia utente scalabile è basata su una base di finestre ad alte prestazioni, completamente integrata con Android standard. Le transizioni sono fluide e possono essere ottimizzate.

Principi fondamentali

L'interfaccia utente scalabile riduce al minimo la necessità di codice specifico per l'OEM, semplifica l'aggiornamento e riduce i rischi di lancio eliminando le insidie e riducendo i problemi di certificazione.

L'approccio basato su XML risolve le sfide comuni nella gestione di sistemi di finestre complessi in AAOS, come quelli relativi al posizionamento preciso, ai conflitti di ordine Z e al focus delle app.

L'interfaccia utente scalabile fornisce questi componenti di base.

Riquadro

Un pannello è il contenitore rettangolare fondamentale sullo schermo. Ogni pannello corrisponde a un'attività radice dedicata per la gestione indipendente. Un pannello può ospitare attività delle app (TaskPanel) o contenuti basati sulla visualizzazione, come i widget (DecorPanel). Per saperne di più, consulta Configurare un pannello.

Variante

Una variante definisce uno stato visivo specifico per un pannello e include proprietà come bounds (posizione e dimensioni), visibility, layer (ordine Z) e raggio corner. Un singolo pannello può avere varianti, ad esempio opened, closed o minimized. Per scoprire di più, consulta la sezione Utilizzare una variante per progettare uno stato visivo.

Transizione

Una transizione definisce il modo in cui un pannello passa dallo stato attuale fromVariant a un nuovo stato, toVariant. La transizione può essere attivata da un Event e può definire l'animazione che il pannello subisce durante il cambio di stato. Un pannello deve passare dal suo stato attuale a toVariant. Per la sincronizzazione, tutte le transizioni sono animate e coordinate dal Window Manager principale.

  • Evento:un trigger per avviare una modifica dell'interfaccia utente. Un OEM o il sistema possono predefinire un trigger. Ad esempio, _System_OnHomeEvent, _System_TaskOpenEvent o la pressione di un pulsante di navigazione personalizzato.

Ad esempio, l'interfaccia utente scalabile utilizza gli eventi per attivare le transizioni. Queste transizioni animano un riquadro da una variante all'altra per mostrare le modifiche dinamiche nell'interfaccia utente. Queste modifiche vengono comunicate ad altre app di sistema per regolare i contenuti in base alle necessità. Definendo le relazioni dell'interfaccia utente in XML, puoi:

  • Specifica comportamenti complessi dell'interfaccia utente:definisci interazioni complesse dell'interfaccia utente.

  • Organizza i sistemi di finestre:controlla il posizionamento e la disposizione a livelli delle finestre.

  • Implementa temi visivi:applica un branding e un'estetica coerenti.

  • Riduzione della complessità del codice: riduci al minimo la necessità di sviluppare codice personalizzato esteso.

Per saperne di più, consulta Configurare una transizione.

Pulsanti dell'UI di sistema

Oltre ad attivare intent, CarSystemBarButtons può attivare un evento ScalableUI quando viene toccato utilizzando gli attributi event, selectedEvent e unselectedEvent.

event descrive l'evento da attivare quando viene toccato il pulsante. Se è necessario un controllo più granulare di un evento, utilizza gli attributi selectedEvent e unselectedEvent per specificare l'evento da attivare quando il pulsante viene selezionato o deselezionato, rispettivamente.

Quando implementare l'interfaccia utente di sistema

Questa sezione descrive gli utilizzi ottimali di Scalable UI.

Creare layout multipannello persistenti

Crea un'esperienza multizona in cui diverse aree dello schermo sono dedicate in modo permanente a funzioni specifiche. Ad esempio, controlli multimediali dedicati, una striscia del climatizzatore o una mappa a schermo intero.

Utilizza TaskPanels per le app principali (ad esempio la navigazione) e DecorPanels per gli elementi dell'interfaccia utente, sotto forma di visualizzazioni, che devono essere posizionati tra TaskPanels.

Implementare una scena della casa dinamica

Implementa una scena Home composta da più pannelli di app interattivi e visibili contemporaneamente. Ad esempio, la mappa, il lettore multimediale e la griglia delle app.

Per eseguire la transizione di tutti i pannelli pertinenti alle relative varianti della home page opened o default, configura _System_HomeEvent.

Applicare overlay contestuali

Posiziona elementi UI non app, come widget contestuali, branding personalizzato e barre di trascinamento che possono essere animate in coordinamento con le attività dell'app.

Utilizza DecorPanels per tutti gli elementi puramente decorativi o di hosting dei widget. Se un widget ospita un'app completamente funzionante e avviabile, Panel > TaskPanel è ottimale. Utilizza DecorPanels per gli elementi dell'interfaccia utente basati sulla visualizzazione quando la stratificazione deve essere sincronizzata con la stratificazione TaskPanel.

Progettare interazioni complesse con i pannelli

Progetta azioni avanzate basate sull'utente, ad esempio ridimensiona dinamicamente un pannello dell'app o regola le visualizzazioni del quadro strumenti in base ai contenuti del display principale.

Definisci Events personalizzati per attivare Transitions specifici non standard di sistema.