通知是 Android 在應用程序外部顯示的消息,用於向用戶提供更新、提醒和其他及時信息。在 Android Automotive OS 中,通知可以顯示為平視通知 (HUN)或通知面板(或兩者都顯示)。本文介紹如何自定義 HUN。
圖 1.通知
通過覆蓋下面詳述的配置值,您可以通過兩種方式自定義 HUN:
- 位置
- 動畫
自定義 HUN 時,請務必確定它將如何受系統欄的 Z 順序影響。如果系統欄的 Z 順序為 10 或更高,它將出現在 HUN 的頂部。例如,如果 HUN 顯示在屏幕頂部並且頂部系統欄的 Z 順序為 10,則頂部系統欄將顯示在 HUN 頂部,除非自定義 HUN 動畫助手以偏移最終HUN 的位置由頂部系統欄的高度決定。
相關文檔
要了解覆蓋資源的方式和原因,請參閱自定義系統 UI 中的覆蓋。
要了解有關通知的更多信息,請參閱 developer.android.com上的 Android Automotive OS上的通知。
config_showHeadsUpNotificationOnBottom
HUN 可以根據配置值config_showHeadsUpNotificationOnBottom
顯示在屏幕的頂部或底部。默認設置為false
,此值設置通知在屏幕頂部的最終位置。
圖 2.默認提示通知
config_headsUpNotificationAnimationHelper
通知應如何出現在屏幕上和離開屏幕的方式有多種。提供了一組默認的動畫助手類,可以通過覆蓋config_headsUpNotificationAnimationHelper
來切換。
com.android.car.notification.headsup.animationhelper.CarHeadsUpNotificationTopAnimationHelper
動畫 HUN 以從初始位置過渡到最終位置,再到可見,然後到不可見。
圖 3.頂部動畫助手
com.android.car.notification.headsup.animationhelper.CarHeadsUpNotificationBottomAnimationHelper
動畫 HUN 以從初始位置過渡到最終位置,再到可見,然後再到不可見。
圖 4.底部動畫助手
com.android.car.notification.headsup.animationhelper.CarHeadsUpNotificationRightAnimationHelper
動畫 HUN 以從初始位置左側過渡到最終位置,然後變為可見,然後變為不可見。
圖 5.右動畫助手
自定義動畫助手
如果需要額外的自定義,可以覆蓋動畫器幫助器類,或者可以使用自定義動畫器幫助器類,前提是幫助類實現HeadsUpNotificationAnimationHelper
接口,如以下代碼片段所示:
[...] public class SampleAnimationHelper implements HeadsUpNotificationAnimationHelper { @Override public AnimatorSet getAnimateInAnimator(Context context, View view) { return (AnimatorSet) AnimatorInflater.loadAnimator( context, R.animator.heads_up_notification_transition_in); } @Override public AnimatorSet getAnimateOutAnimator(Context context, View view) { return (AnimatorSet) AnimatorInflater.loadAnimator( context, R.animator.heads_up_notification_transition_out); } @Override public void resetHUNPosition(View view) { view.setY(-1 * view.getHeight()); view.setAlpha(0); } }