通知是指 Android 在应用之外显示的消息,旨在向用户提供更新、提醒或其他实时信息。在 Android Automotive OS 中,通知可以显示为浮动通知 (HUN) 或显示在“通知”面板中,或同时以这两种方式显示。本文介绍了如何自定义 HUN。
图 1. 通知
替换下面详述的配置值后,您可以通过两种方式自定义 HUN:
- 位置
- 动画
自定义 HUN 时,务必确定它受系统栏 Z 轴顺序影响的方式。如果系统栏的 Z 轴顺序为 10 或更高,它就会显示在 HUN 顶部。例如,如果 HUN 显示在屏幕顶部,且顶部系统栏的 Z 轴顺序为 10,顶部系统栏就会显示在 HUN 顶部,除非系统将 HUN 动画帮助程序自定义为使 HUN 的最终位置偏移顶部系统栏的高度。
相关文档
-
如需了解叠加资源的方式和原因,请参阅自定义系统界面中的叠加层。
-
如需详细了解通知,请参阅 developer.android.com 上的 Android Automotive OS 中的通知。
config_showHeadsUpNotificationOnBottom
可以根据配置值 config_showHeadsUpNotificationOnBottom
在屏幕顶部或底部显示 HUN。此值默认设置为 false
。通过此值,可将通知的最终位置设置在屏幕顶部。
图 2. 默认浮动通知
config_headsUpNotificationAnimationHelper
通知可通过多种方式在屏幕上显示和退出屏幕。系统提供了一组默认 Animator 辅助程序类,用户可以通过替换 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. 右侧动画辅助程序
自定义动画辅助程序
如需进行额外的自定义,可以替换 Animator 辅助程序类,也可以使用自定义 Animator 辅助程序类,前提是该辅助类实现了如下代码段中所示的 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); } }