마우스 포인터 아이콘

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 앱의 맞춤 포인터 아이콘

부록

추가 자료

시스템 기본 커서

다음은 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 텍스트 커서(I 빔)
TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW 크기 조절을 위한 왼쪽 상단에서 오른쪽 하단으로 향하는 대각선 양방향 화살표 커서
TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW 크기 조절을 위한 오른쪽 상단에서 왼쪽 하단으로 향하는 대각선 이중 화살표 커서
TYPE_VERTICAL_DOUBLE_ARROW 크기 조절을 위한 세로 양방향 화살표 커서입니다.
TYPE_VERTICAL_TEXT 세로 텍스트 커서, 가로 I자형입니다.
TYPE_WAIT 대기 커서(모래시계 또는 회전하는 원)
TYPE_ZOOM_IN 확대 커서(더하기 기호가 있는 돋보기)
TYPE_ZOOM_OUT 축소 커서(빼기 기호가 있는 돋보기)