滑鼠游標圖示

Android 使用者會透過各種板型規格 (例如手機、平板電腦、摺疊式裝置和 Chromebook) 存取您的應用程式。與應用程式互動時,使用者也可能會使用指標裝置,例如三鍵滑鼠,尤其是在較大的螢幕上。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 系統預設提供下列游標:

游標名稱 Icon
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 縮小游標,也就是帶有減號的放大鏡。