2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
로터리 컨트롤러
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
로터리 컨트롤러는 자동차의 중앙 콘솔에 있는 노브 및 주변 버튼으로, 헤드 단위를 제어하는 데 사용됩니다. 로터리 컨트롤러는 다음 기능을 지원해야 합니다.
- 4방향(위, 아래, 왼쪽, 오른쪽)으로 미세 이동
- 시계 방향, 시계 반대 방향으로 회전
- 가운데 버튼
- 뒤로 버튼
로터리 컨트롤러는 대각선 미세 이동을 지원할 수도 있습니다. 회전은 디텐트(클릭수)로 제한되어서는 안 됩니다. 가운데에 버튼이 있거나 로터리 노브 자체가 버튼 역할을 할 수 있습니다. 일반적으로 로터리 노브 주위에 홈, 미디어, 전화, 탐색(지도) 등의 추가 버튼이 있습니다.
로터리 컨트롤러는 다음과 같이 작동합니다.
- 미세 이동은 사용자 인터페이스의 대략적인 탐색에 사용됩니다. 화면은
FocusAreas
라고 하는 직사각형 영역 여러 개로 분할됩니다.
미세 이동은 이러한 FocusAreas
간에 이동합니다.
- 회전은 자세한 탐색에 사용됩니다. 회전은 Tab 키와 같은 순서로
FocusArea
에서 포커스 가능 뷰를 탐색합니다.
- 가운데 버튼은 버튼을 누르는 것과 같이 포커스가 있는 뷰에서 작업을 실행합니다.
- 뒤로 버튼은 일반적으로 Android에서 평소대로 작동하지만 아래에 설명된 직접 조작은 예외입니다.
미세 이동 기록을 통해 오른쪽 그리고 왼쪽으로 미세 이동하면 원래 위치로 다시 돌아갑니다.
OEM에서 이를 구성할 수 있습니다.
OEM에서 구성한 경우 화면 가장자리에서 미세 이동하려고 하면 시스템 전체 작업(예: 뒤로)이 트리거됩니다.
가장 최근의 상호작용이 로터리 컨트롤러가 아닌 터치를 통해 발생한 경우 가운데 버튼을 미세 이동하거나 회전하거나 누르면 뷰에 포커스를 두어 로터리 모드가 시작되지만 일반적으로 무시됩니다. 후속 작업은 포커스를 이동하거나 작업을 실행하는 등 위에서 설명한 대로 작동합니다.
가운데 버튼을 누를 때 SeekBar
에 포커스가 있으면 직접 조작(DM) 모드가 시작됩니다. 이 모드에서 회전은 탐색이 아닌 SeekBar
를 조작합니다. 뒤로 버튼을 사용하여 DM 모드를 종료합니다.
DM 모드를 지원하는 다른 뷰에서는 미세 이동과 회전을 사용하여 뷰를 조작할 수 있습니다.
예를 들어 지도 뷰에서는 회전을 사용하여 확대/축소하고 미세 이동을 사용하여 지도를 이동(스크롤)할 수 있습니다.
자세한 내용은 다음을 참고하세요.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Rotary controller\n\nA *rotary controller* is a knob and surrounding buttons in the center console of\nan automobile used to control the head unit. A rotary controller must support these functions:\n\n- Nudge in four directions (up, down, left, and right)\n- Rotate clockwise and counterclockwise\n- Center button\n- Back button\n\nA rotary controller might support diagonal nudges. Rotation must be limitless with\ndetents (clicks). There can either be a button in the center or the rotary knob itself\ncan act as a button. There are typically additional buttons surrounding the rotary knob,\nfor example, Home, Media, Phone, and navigation (map).\n\nA rotary controller works like this:\n\n- Nudging is used for *coarse* navigation in the user interface. The screen is partitioned into several rectangular regions, referred to as `FocusAreas`. Nudging navigates between these `FocusAreas`.\n- Rotation is used for *fine* navigation. Rotation navigates through the focusable views in a `FocusArea` in the same order as the Tab key.\n- Center button takes action on the focused view, for example to press a button.\n- Back button typically functions as usual in Android, an exception being [direct manipulation](#dm), described below.\n\nNudge history ensures that nudging right and then left takes you back where you were.\nThis can be configured by the OEM.\n\nWhen configured by the OEM, attempting to nudge off the edge of the screen triggers a\nsystem-wide action, for example Back.\n\nIf the most recent interaction took place through touch rather than the rotary controller,\nany nudge, rotate, or press of the Center button starts rotary mode by focusing a view, but\nis typically ignored. Subsequent actions function as described above, moving focus or\ntaking action.\n\nIf a `SeekBar` is focused when the Center button is pressed,\n*direct manipulation (DM)* mode starts. In this mode, rotation manipulates the\n`SeekBar` rather than navigating. The Back button is used to exit DM mode.\nOther views that support DM mode can use nudging as well as rotation to manipulate the view.\nFor example, a map view can use rotation to zoom and nudging to pan (scroll) the map.\n\nTo learn more, see:\n\n- [Develop apps](/docs/automotive/hmi/rotary_controller/app_developers)\n- [Develop apps\n without the Car UI library](/docs/automotive/hmi/rotary_controller/app_developers_no_carui)\n- [Integration guide for OEMs](/docs/automotive/hmi/rotary_controller/oem_integration)"]]