浮动通知

通知是指 Android 在应用之外显示的消息,旨在向用户提供更新、提醒或其他实时信息。在 Android Automotive OS 中,通知可以显示为浮动通知 (HUN) 或显示在“通知”面板中,或同时以这两种方式显示。本文介绍了如何自定义 HUN。

通知

图 1. 通知

替换下面详述的配置值后,您可以通过两种方式自定义 HUN:

  • 位置
  • 动画

自定义 HUN 时,务必确定它受系统栏 Z 轴顺序影响的方式。如果系统栏的 Z 轴顺序为 10 或更高,它就会显示在 HUN 顶部。例如,如果 HUN 显示在屏幕顶部,且顶部系统栏的 Z 轴顺序为 10,顶部系统栏就会显示在 HUN 顶部,除非系统将 HUN 动画帮助程序自定义为使 HUN 的最终位置偏移顶部系统栏的高度。

相关文档

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