알림은 Android에서 사용자에게 업데이트, 알림, 기타 시기적절한 정보를 제공하기 위해 앱 외부에 표시하는 메시지입니다. Android Automotive OS에서는 알림을 헤드업 알림(HUN)으로 표시하거나 알림 패널에 표시할 수 있습니다(또는 두 방법으로 모두 표시). 이 페이지에서는 HUN을 맞춤설정하는 방법을 설명합니다.
그림 1. 알림
아래 설명된 구성 값을 재정의하면 다음 두 가지 방법으로 HUN을 맞춤설정할 수 있습니다.
- 위치
- 애니메이션
HUN을 맞춤설정할 때는 시스템 표시줄의 Z 순서에서 어떤 영향을 받는지 확인해야 합니다. 시스템 표시줄의 Z 순서가 10 이상이면 HUN의 상단에 나타납니다. 예를 들어 HUN이 화면 상단에 표시되고 상단 시스템 표시줄의 Z 순서가 10인 경우 상단 시스템 표시줄은 HUN 상단에 표시됩니다. 단, 애니메이션 도우미가 상단 시스템 표시줄 높이로 HUN의 최종 위치를 오프셋하도록 맞춤설정되는 경우는 예외로 합니다.
관련 문서
-
리소스를 오버레이하는 방법과 이유를 알아보려면 시스템 UI 맞춤설정의 오버레이를 참고하세요.
-
알림에 관한 자세한 내용은 developer.android.com의 Android Automotive OS 알림을 참고하세요.
config_showHeadsUpNotificationOnBottom
HUN은 구성 값 config_showHeadsUpNotificationOnBottom
에 따라 화면 상단 또는 하단에 표시될 수 있습니다.
기본적으로 false
로 설정되는 이 값은 알림의 최종 위치를 화면 상단으로 설정합니다.
그림 2. 기본 HUN
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); } }