通知是指 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. 默认 HUN
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);
}
}