Android-Nutzer greifen über verschiedene Formfaktoren auf Ihre App zu, z.B. über Smartphones, Tablets, faltbare Geräte und Chromebooks. Bei der Interaktion mit Ihrer Anwendung, insbesondere auf größeren Bildschirmen, verwenden Nutzer möglicherweise auch ein Zeigegerät wie eine Maus mit drei Tasten. Android-Anwendungen unterstützen die Möglichkeit, den Mauszeiger unterschiedlich zu gestalten, um Nutzern visuell zu signalisieren, dass sie mit einem Objekt interagieren können.
Standardcursor des Systems verwenden
Nutzer sind mit verschiedenen Konventionen für die Interaktion mit verschiedenen Arten von Objekten auf Geräten mit großen Bildschirmen vertraut. Android bietet Entwicklern einige der gängigsten Cursorsymbole, die Nutzer kennen. Sie können diese Standardcursorsymbole mit wenigen Codezeilen hinzufügen. Sehen wir uns das folgende Kotlin-Snippet an:
myView.setOnHoverListener { view, _ -> view.pointerIcon = PointerIcon.getSystemIcon(applicationContext, PointerIcon.TYPE_HAND) false // Listener did not consume the event. }
In diesem Beispiel ist myView die Ansicht, für die unter bestimmten Bedingungen ein Zeigersymbol festgelegt wird. Die hier gezeigte Bedingung ist ein Hover-Zustand, der auftritt, wenn sich der Mauszeiger über einer Ansicht befindet. In anderen Szenarien möchten Sie möglicherweise ein Warte- oder Fadenkreuzsymbol während der Verarbeitung oder in einem Spiel.
Der setOnHoverListener wartet darauf, dass der Mauszeiger in den Hover-Status wechselt, und reagiert dann auf dieses Ereignis. Im Event-Listener wird view.pointerIcon aufgerufen, um das Zeigersymbol für diese bestimmte Ansicht festzulegen. Ein vorhandenes Systemsymbol wird verwendet, um das Symbol des Mauszeigers festzulegen.
In Android sind mehrere Systemsymbole integriert. Eine vollständige Liste finden Sie unten auf dieser Seite. Das Symbol TYPE_HAND wurde verwendet. Es zeigt eine geschlossene Hand mit ausgestrecktem Zeigefinger.
Eigenen speziellen Cursor verwenden
// 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())
Hinweis:Die Position des Hotspots hängt von Ihrem Anwendungsfall ab. In einer Zeichen-App wäre der Hotspot beispielsweise die Spitze des Stifts oder Pinsels.
Beispiele
Wenn Sie Ihrer Anwendung Zeigersymbole hinzufügen, können Sie Nutzern helfen, die verschiedenen Geräteformfaktoren, die sie verwenden, intuitiver zu bedienen. Es gibt viele tolle Standardsystemsymbole. Wenn diese nicht Ihren Anforderungen entsprechen, können Sie jederzeit eigene Symbole laden oder erstellen.
-
Drag-and-drop: Wenn Ihre Anwendung das Ziehen aus einer anderen Anwendung und das Ablegen in Ihrer Anwendung unterstützt, können Sie das
TYPE_NO_DROP-Symbol implementieren. So wird visuell angezeigt, dass Ihre Anwendung den MIME-Typ nicht unterstützt, der in Ihre App eingefügt werden soll. -
Karten: Wenn Sie eine Kartenanwendung haben und Nutzern zeigen möchten, dass sie die Karte schwenken können, können Sie das
TYPE_GRAB-Symbol anzeigen lassen, wenn der Mauszeiger auf die Karte bewegt wird. Wenn der Nutzer klickt, können Sie das Symbol in eine greifende Hand ändern, um anzuzeigen, dass er die Karte schwenkt. -
Fotobearbeitung: Nutzer, die Fotos bearbeiten, möchten die Möglichkeit haben, eine Lupe auszuwählen, um hineinzuzoomen. Sie können den Cursor mit dem Symbol
TYPE_ZOOM_INin eine Lupe ändern, wenn der Zoommodus ausgewählt ist. - Und viele weitere Möglichkeiten
Hinweis:Ein Beispiel für verschiedene Zeigeränderungen finden Sie in diesem GitHub-Zeigerbeispiel.
Anhang
Weitere Informationen
- GitHub-Beispiel für Zeiger
- Dokumentation zur Android-Klasse „PointerIcon“
- Apps für ChromeOS optimieren : Benutzerdefinierte Cursor
Systemstandard-Cursor
Dies sind die standardmäßig im Android-System verfügbaren Cursor.
| Cursor-Name | Symbol |
|---|---|
| TYPE_ALIAS | ![]() |
| TYPE_ALL_SCROLL | ![]() |
| TYPE_ARROW | ![]() |
| TYPE_CELL | Zellcursor |
| 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 | Kein Cursor wird angezeigt |
| 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 | ![]() |




















