Người dùng Android truy cập vào ứng dụng của bạn từ nhiều loại kiểu dáng thiết bị, tức là điện thoại, máy tính bảng, thiết bị có thể gập lại và Chromebook. Khi tương tác với ứng dụng của bạn, đặc biệt là trên màn hình lớn, người dùng cũng có thể sử dụng một số loại thiết bị trỏ như chuột có 3 nút. Các ứng dụng Android hỗ trợ việc áp dụng nhiều kiểu cho con trỏ chuột để giúp những người dùng này có dấu hiệu trực quan cho thấy họ có thể tương tác với một đối tượng.
Sử dụng con trỏ mặc định của hệ thống
Người dùng đã quen với nhiều quy ước để tương tác với nhiều loại đối tượng trên các thiết bị màn hình lớn. Android cung cấp cho nhà phát triển một số biểu tượng con trỏ phổ biến nhất mà người dùng quen thuộc. Bạn có thể thêm các biểu tượng con trỏ mặc định của hệ thống này bằng một vài dòng mã. Hãy xem đoạn mã Kotlin sau:
myView.setOnHoverListener { view, _ -> view.pointerIcon = PointerIcon.getSystemIcon(applicationContext, PointerIcon.TYPE_HAND) false // Listener did not consume the event. }
Trong ví dụ này, myView là khung hiển thị sẽ được đặt thành biểu tượng con trỏ trong một số điều kiện nhất định. Điều kiện được minh hoạ ở đây là trạng thái di chuột, xảy ra khi con trỏ chuột ở trên một khung hiển thị. Trong các trường hợp khác, bạn có thể muốn có một biểu tượng chờ trong quá trình xử lý hoặc một dấu thập trong trò chơi.
setOnHoverListener sẽ theo dõi thời điểm con trỏ chuyển sang trạng thái di chuột rồi thực hiện hành động dựa trên sự kiện đó. Bên trong trình nghe sự kiện, view.pointerIcon được gọi để đặt biểu tượng con trỏ cho khung hiển thị cụ thể đó. Một biểu tượng hệ thống hiện có được dùng để đặt biểu tượng của con trỏ.
Android có một số biểu tượng hệ thống được tích hợp sẵn; bạn có thể xem danh sách đầy đủ ở cuối trang này. Biểu tượng TYPE_HAND được dùng, cho thấy một bàn tay khép hờ với ngón trỏ duỗi thẳng.
Sử dụng con trỏ đặc biệt của riêng bạn
// 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())
Lưu ý: Vị trí của điểm phát sóng tuỳ thuộc vào trường hợp sử dụng của bạn. Ví dụ: một ứng dụng vẽ sẽ đặt điểm phát sóng là đầu bút hoặc cọ vẽ.
Ví dụ
Việc thêm biểu tượng con trỏ vào ứng dụng là một cách tuyệt vời để giúp người dùng có trải nghiệm trực quan hơn trên nhiều hệ số hình dạng thiết bị mà họ sử dụng. Có rất nhiều biểu tượng hệ thống mặc định tuyệt vời và nếu những biểu tượng đó không phù hợp với nhu cầu của bạn, bạn luôn có thể tải hoặc tạo biểu tượng của riêng mình.
-
Kéo và thả – Nếu ứng dụng của bạn hỗ trợ thao tác kéo từ một ứng dụng khác và thả vào ứng dụng của bạn, thì bạn có thể triển khai biểu tượng
TYPE_NO_DROP. Điều này sẽ cho thấy một dấu hiệu trực quan rằng ứng dụng của bạn không hỗ trợ loại MIME đang cố gắng được thả vào ứng dụng. -
Lập bản đồ – Nếu bạn có một ứng dụng lập bản đồ và muốn cho người dùng biết rằng họ có thể di chuyển bản đồ, thì họ có thể có lựa chọn sử dụng biểu tượng
TYPE_GRABkhi bạn di chuột lên bản đồ. Khi người dùng nhấp, bạn có thể cập nhật biểu tượng thành bàn tay nắm để cho biết họ đang di chuyển bản đồ. -
Chỉnh sửa ảnh – Người dùng chỉnh sửa ảnh muốn có các chế độ điều khiển cho phép họ chọn kính lúp để phóng to. Bạn có thể thay đổi con trỏ thành kính lúp bằng biểu tượng
TYPE_ZOOM_INkhi chọn chế độ phóng to. - Và nhiều cơ hội khác
Lưu ý: Để xem các thay đổi về con trỏ, hãy xem Mẫu con trỏ trên GitHub này
Phụ lục
Tài liệu đọc thêm
- Mẫu con trỏ GitHub
- Tài liệu về lớp PointerIcon của Android
- Tối ưu hoá ứng dụng cho ChromeOS : Con trỏ tuỳ chỉnh
Con trỏ mặc định của hệ thống
Theo mặc định, đây là những con trỏ có sẵn trong Hệ thống Android.
| Tên con trỏ | Biểu tượng |
|---|---|
| TYPE_ALIAS | ![]() |
| TYPE_ALL_SCROLL | ![]() |
| TYPE_ARROW | ![]() |
| TYPE_CELL | Con trỏ ô |
| 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 | Không hiển thị con trỏ |
| 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 | ![]() |




















