スケーラブル UI を使用して、車内で洗練された動的なマルチパネルのユーザー エクスペリエンスを構築します。スケーラブルな UI:
柔軟なウィンドウ システムを提供します。
ユーザー インターフェース実装の互換性テストスイート(CTS)によって生じるエンジニアリング リスク、コスト、複雑さを最小限に抑えます。
スケーラブル UI は、動的なウィンドウ配置を必要とする幅広い最新の車載インフォテインメント(IVI)設計をサポートします。
特典とコンプライアンス
スケーラブル UI のメリットは次のとおりです。
テストリスクの軽減: フレームワークは事前に認証されており、CTS に準拠しているため、プログラム サイクルの後半でテストが失敗する主なリスクを排除できます。スケーラブルな UI により、エンジニアリングの労力を数か月節約し、コンプライアンスを迅速に実現できます。
設計の柔軟性の向上: 複雑な既存の自動車用ウィンドウ モデルを多数再現できることが実証されています。スケーラブルな UI は、野心的で差別化されたデザインをサポートします。
実装の複雑さの軽減: 高レベルの構成駆動型 XML モデルへの抽象化により、カスタム ウィンドウ処理ロジックの導入のハードルが下がります。
パフォーマンスの向上: スケーラブル UI は、標準の Android と完全に統合された、パフォーマンスの高いウィンドウ基盤上に構築されています。移行はスムーズで、最適化できます。
基礎を固める
スケーラブルな UI により、OEM 固有のコードの必要性が最小限に抑えられ、更新が容易になり、落とし穴の排除や認証の問題の削減により、リリース リスクが軽減されます。
XML 駆動型のアプローチは、AAOS で複雑なウィンドウ システムを管理する際の一般的な課題(正確な位置決め、Z オーダーの競合、アプリのフォーカスなど)に対処します。
スケーラブル UI は、これらのコア構成要素を提供します。
パネル
パネルは、画面上の基本的な長方形のコンテナです。各パネルは、独立した管理のための専用のルートタスクにマッピングされます。パネルには、アプリタスク(TaskPanel
)や、ウィジェット(DecorPanel
)などのビューベースのコンテンツをホストできます。詳しくは、パネルを構成するをご覧ください。
バリアント
バリエーションは、パネルの特定の視覚状態を定義し、bounds
(位置とサイズ)、visibility
、layer
(Z オーダー)、corner
半径などのプロパティを含みます。単一のパネルには、opened
、closed
、minimized
などのバリエーションがあります。詳細については、バリエーションを使用してビジュアル状態を設計するをご覧ください。
Transition
トランジションは、パネルが現在の状態 fromVariant
から新しい状態 toVariant
に移行する方法を定義します。この遷移は Event
によってトリガーされ、状態が変化する間にパネルが通過するアニメーションを定義できます。パネルが現在の状態から toVariant
に移動します。同期の場合、すべてのトランジションはアニメーション化され、コア ウィンドウ マネージャーによって調整されます。
- イベント: UI の変更を開始するトリガー。OEM またはシステムはトリガーを事前定義できます。たとえば、
_System_OnHomeEvent
、_System_TaskOpenEvent
、カスタム ナビゲーション ボタンの押下などです。
たとえば、スケーラブル UI はイベントを使用してトランジションをトリガーします。これらのトランジションは、UI の動的な変化を表示するために、パネルを 1 つのバリエーションから別のバリエーションにアニメーション化します。これらの変更は、必要に応じてコンテンツを調整するために他のシステムアプリに伝達されます。XML で UI の関係を定義すると、次のことが可能になります。
複雑な UI の動作を指定する: 複雑なユーザー インターフェースの操作を定義します。
ウィンドウ環境を配置: ウィンドウの位置とレイヤリングを制御します。
ビジュアル テーマを実装する: 一貫したブランディングと美学を適用します。
コードの複雑さを軽減する: 大規模なカスタムコード開発の必要性を最小限に抑えます。
詳細については、トランジションを構成するをご覧ください。
システム UI ボタン
インテントのトリガーに加えて、CarSystemBarButtons
は、event
、selectedEvent
、unselectedEvent
属性を使用してタップされたときに ScalableUI イベントをトリガーできます。
event
は、ボタンがタップされたときにトリガーされるイベントを記述します。イベントをより細かく制御する必要がある場合は、selectedEvent
属性と unselectedEvent
属性を使用して、ボタンが選択されたときと選択解除されたときにそれぞれトリガーするイベントを指定します。
システム UI を実装するタイミング
このセクションでは、スケーラブル UI の最適な使用方法について説明します。
永続的なマルチパネル レイアウトを作成する
画面のさまざまな領域が特定の機能に永続的に割り当てられるマルチゾーン エクスペリエンスを作成します。たとえば、専用のメディア コントロール、温度調節バー、全画面表示の地図などです。
TaskPanels
はプライマリ アプリ(ナビゲーションなど)に、DecorPanels
は TaskPanels
の間に配置する必要があるビュー形式の UI 要素に使用します。
動的なホームシーンを実装する
複数のアプリパネルで構成され、同時に表示され、操作可能な Home シーンを実装します。たとえば、地図、メディア プレーヤー、アプリ グリッドなどです。
関連するすべてのパネルを opened
または default
のホーム バリエーションに移行するには、_System_HomeEvent
を構成します。
コンテキスト オーバーレイを適用する
アプリのタスクと連携してアニメーション化できるコンテキスト ウィジェット、カスタム ブランディング、ドラッグバーなどのアプリ以外の UI 要素を配置します。
純粋に装飾的な要素やウィジェットをホストする要素には、DecorPanels
を使用します。ウィジェットが完全に機能する起動可能なアプリをホストしている場合は、Panel
> TaskPanel
が最適です。レイヤリングを TaskPanel
レイヤリングと同期させる必要がある場合は、ビューベースの UI 要素に DecorPanels
を使用します。
複雑なパネル インタラクションを設計する
アプリパネルの動的なサイズ変更や、メイン ディスプレイのコンテンツに基づくメーター クラスタ ビューの調整など、高度なユーザー主導のアクションを設計します。
カスタム Events
を定義して、特定のシステム標準以外の Transitions
をトリガーします。