Android 사용자는 스마트폰, 태블릿, 폴더블, Chromebook 등 다양한 유형의 폼 팩터에서 앱을 사용합니다. 특히 큰 화면에서 애플리케이션과 상호작용할 때 사용자는 3버튼 마우스와 같은 포인팅 기기를 사용할 수도 있습니다. Android 애플리케이션은 사용자가 객체와 상호작용할 수 있다는 시각적 표시를 제공하기 위해 마우스 포인터에 다양한 스타일을 적용하는 기능을 지원합니다.
시스템 기본 커서 사용
사용자는 대형 화면 기기에서 다양한 유형의 객체와 상호작용하는 다양한 규칙에 익숙합니다. Android는 개발자에게 사용자가 잘 알고 있는 가장 일반적인 커서 아이콘을 제공합니다. 몇 줄의 코드를 사용하여 이러한 시스템 기본 커서 아이콘을 추가할 수 있습니다. 다음 Kotlin 스니펫을 살펴보겠습니다.
myView.setOnHoverListener { view, _ -> view.pointerIcon = PointerIcon.getSystemIcon(applicationContext, PointerIcon.TYPE_HAND) false // Listener did not consume the event. }
이 예에서 myView는 특정 조건에서 포인터 아이콘으로 설정되는 뷰입니다. 여기에서 보여주는 조건은 마우스 포인터가 뷰 위에 있을 때 발생하는 호버 상태입니다. 다른 시나리오에서는 처리 중에 대기 아이콘이 필요하거나 게임에서 십자선이 필요할 수 있습니다.
setOnHoverListener는 포인터가 마우스 오버 상태로 전환되는 시점을 수신 대기한 후 해당 이벤트에 따라 작동합니다. 이벤트 리스너 내에서 view.pointerIcon가 호출되어 특정 뷰의 포인터 아이콘을 설정합니다. 기존 시스템 아이콘이 포인터의 아이콘을 설정하는 데 사용됩니다.
Android에는 여러 시스템 아이콘이 내장되어 있습니다. 전체 목록은 이 페이지 하단에 있습니다. TYPE_HAND 아이콘이 사용되었으며, 이는 검지가 뻗은 닫힌 손을 보여줍니다.
자체 특수 커서 사용
// Loading a bitmap to use as a pointer icon BitmapFactory.decodeResource( this.resources, R.drawable.dollar_sign ), CURSOR_WIDTH, CURSOR_HEIGHT, false ) // Creating the pointer icon and sending clicks from the center of the mouse icon PointerIcon.create(dollarBitmap, (CURSOR_WIDTH/2).toFloat(), (CURSOR_HEIGHT/2).toFloat())
참고: 핫스팟의 위치는 사용 사례에 따라 다릅니다. 예를 들어 그림 앱은 핫스팟을 펜이나 페인트 브러시의 끝으로 설정합니다.
예
애플리케이션에 포인터 아이콘을 추가하면 사용자가 사용하는 다양한 기기 폼 팩터에서 더 직관적인 환경을 제공할 수 있습니다. 다양한 기본 시스템 아이콘을 사용할 수 있으며, 필요에 맞지 않는 경우 언제든지 자체 아이콘을 로드하거나 만들 수 있습니다.
-
드래그 앤 드롭 - 애플리케이션이 다른 애플리케이션에서 드래그하여 애플리케이션에 드롭하는 것을 지원하는 경우
TYPE_NO_DROP아이콘을 구현할 수 있습니다. 이렇게 하면 앱에 드롭하려는 MIME 유형이 애플리케이션에서 지원되지 않는다는 시각적 표시가 제공됩니다. -
매핑 - 매핑 애플리케이션이 있고 사용자가 지도를 이동할 수 있음을 표시하려는 경우 사용자가 지도 위로 마우스를 가져갈 때
TYPE_GRAB아이콘을 표시하는 옵션을 제공할 수 있습니다. 사용자가 클릭하면 아이콘을 잡는 손으로 업데이트하여 지도를 이동하고 있음을 표시할 수 있습니다. -
사진 편집: 사진 편집 사용자는 돋보기를 선택하여 확대할 수 있는 컨트롤을 선호합니다. 확대 모드를 선택하면 커서를
TYPE_ZOOM_IN아이콘이 있는 돋보기로 변경할 수 있습니다. - 그 외 다양한 기회
참고: 다양한 포인터 변경사항을 확인하려면 GitHub 포인터 샘플을 참고하세요.
부록
추가 자료
시스템 기본 커서
다음은 Android 시스템에서 기본적으로 사용할 수 있는 커서입니다.
| 커서 이름 | 아이콘 |
|---|---|
| TYPE_ALIAS | ![]() |
| TYPE_ALL_SCROLL | ![]() |
| TYPE_ARROW | ![]() |
| TYPE_CELL | 셀 커서 |
| TYPE_CONTEXT_MENU | ![]() |
| TYPE_COPY | ![]() |
| TYPE_CROSSHAIR | ![]() |
| TYPE_DEFAULT | ![]() |
| TYPE_GRAB | ![]() |
| TYPE_GRABBING | ![]() |
| TYPE_HAND | ![]() |
| TYPE_HELP | ![]() |
| TYPE_HORIZONTAL_DOUBLE_ARROW | ![]() |
| TYPE_NO_DROP | ![]() |
| TYPE_NULL | 커서가 표시되지 않음 |
| TYPE_TEXT | ![]() |
| TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW | ![]() |
| TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW | ![]() |
| TYPE_VERTICAL_DOUBLE_ARROW | ![]() |
| TYPE_VERTICAL_TEXT | ![]() |
| TYPE_WAIT | ![]() |
| TYPE_ZOOM_IN | ![]() |
| TYPE_ZOOM_OUT | ![]() |




















