Gli utenti Android accedono alla tua app da tutti i tipi di fattori di forma, ad esempio smartphone, tablet, pieghevoli e Chromebook. Quando interagiscono con la tua applicazione, soprattutto su schermi più grandi, gli utenti possono anche utilizzare un dispositivo di puntamento come un mouse a tre pulsanti. Le applicazioni Android supportano l'applicazione di stili diversi al puntatore del mouse per aiutare gli utenti a visualizzare un'indicazione che possono interagire con un oggetto.
Utilizzare i cursori predefiniti del sistema
Gli utenti conoscono diverse convenzioni per interagire con diversi tipi di oggetti sui dispositivi con schermi di grandi dimensioni. Android fornisce agli sviluppatori alcune delle icone del cursore più comuni che gli utenti conoscono. Puoi aggiungere queste icone del cursore predefinite del sistema con poche righe di codice. Diamo un'occhiata al seguente snippet Kotlin:
myView.setOnHoverListener { view, _ -> view.pointerIcon = PointerIcon.getSystemIcon(applicationContext, PointerIcon.TYPE_HAND) false // Listener did not consume the event. }
In questo esempio, myView è la visualizzazione che verrà impostata su un'icona a forma di puntatore in determinate condizioni. La condizione mostrata qui è uno stato di passaggio del mouse, che si verifica quando il puntatore del mouse si trova sopra una visualizzazione. In altri scenari, potresti voler visualizzare un'icona di attesa durante l'elaborazione o un mirino in un gioco.
setOnHoverListener rimane in ascolto per rilevare quando il puntatore entra nello stato di passaggio del mouse e poi agisce in base a questo evento. All'interno del listener di eventi, viene chiamato view.pointerIcon per impostare l'icona del puntatore per quella visualizzazione specifica. Per impostare l'icona del puntatore viene utilizzata un'icona di sistema esistente.
In Android sono integrate diverse icone di sistema. Un elenco completo è disponibile in fondo a questa pagina. È stata utilizzata l'icona TYPE_HAND, che mostra una mano chiusa con il dito indice esteso.
Utilizzare il proprio cursore speciale
// 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())
Nota:la posizione dell'hotspot dipende dal caso d'uso. Ad esempio, un'app di disegno imposterebbe l'hotspot come la punta della penna o del pennello.
Esempi
L'aggiunta di icone del puntatore all'applicazione è un ottimo modo per consentire agli utenti di avere esperienze più intuitive sui diversi fattori di forma dei dispositivi che utilizzano. Sono disponibili molte icone di sistema predefinite e, se non soddisfano le tue esigenze, puoi sempre caricarne o crearne di tue.
-
Trascina e rilascia: se la tua applicazione supporta il trascinamento da un'altra applicazione e il rilascio nella tua applicazione, puoi implementare l'icona
TYPE_NO_DROP. In questo modo, l'utente avrà un'indicazione visiva che la tua applicazione non supporta il tipo MIME che sta tentando di trascinare nell'app. -
Mappatura: se hai un'applicazione di mappatura e vuoi mostrare agli utenti che possono spostare la mappa, potresti avere un'opzione per visualizzare l'icona
TYPE_GRABquando passi il mouse sopra la mappa. Quando l'utente fa clic, puoi aggiornare l'icona con una mano che afferra per mostrare che sta spostando la mappa. -
Modifica foto: gli utenti che modificano le foto preferiscono avere controlli che consentano di selezionare una lente d'ingrandimento per ingrandire. Potresti cambiare il cursore in una lente d'ingrandimento con l'icona
TYPE_ZOOM_INquando è selezionata la modalità di zoom. - E molte altre opportunità
Nota:per vedere in azione le diverse modifiche del puntatore, consulta questo esempio di puntatore di GitHub.
Appendice
Letture aggiuntive
- GitHub Pointer Sample
- Documentazione della classe Android PointerIcon
- Ottimizzazione delle app per ChromeOS : cursori personalizzati
Cursori predefiniti di sistema
Questi sono i cursori disponibili per impostazione predefinita nel sistema Android.
| Nome del cursore | Icona |
|---|---|
| TYPE_ALIAS | ![]() |
| TYPE_ALL_SCROLL | ![]() |
| TYPE_ARROW | ![]() |
| TYPE_CELL | Cursore della cella |
| 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 | Nessun cursore verrà visualizzato |
| 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 | ![]() |




















