Saisie avec un stylet sur Surface Duo

Les événements de stylet Android sont gérés en implémentant la méthode onTouchEvent dans votre classe View. Le meilleur moyen de rendre l’interface tactile de votre application interactive consiste à étendre votre implémentation de la classe View afin de remplacer onTouchEvent pour écouter les événements tactiles. MotionEvent comme argument signale les détails de l’entrée de l’écran tactile pour permettre aux utilisateurs d’interagir avec l’écran à l’aide d’un stylet.

Votre code peut détecter que l’utilisateur utilise un stylet en regardant la valeur retournée par la méthode MotionEvent.getToolType. La valeur TOOL_TYPE_STYLUS indique un stylet et TOOL_TYPE_ERASER indique qu’un stylet tenu à l’envers avec la gomme vers le bas.

Pression

Représente la pression avec laquelle l’utilisateur utilise le stylet. Elle est généralement comprise entre 0 et 1 (mais elle n’est pas limitée par le système). 0 indique une pression légère et 1 indique une pression forte.

La valeur est obtenue en appelant la méthode getPressure ou en appelant getAxisValue avec le paramètre AXIS_PRESSURE.

Orientation

La valeur d’orientation commence à 0 quand le stylet est tenu avec la pointe vers le haut de l’écran et la partie gomme pointant vers l’utilisateur.

Lors de la rotation du stylet, les valeurs sont négatives si le stylet pointe vers la gauche (pointe du stylet à gauche de la gomme) et positives quand il pointe vers la droite.

La valeur est obtenue en appelant la méthode getOrientation ou en appelant getAxisValue avec le paramètre AXIS_ORIENTATION.

L’extrait de code suivant détecte l’orientation du stylet et trace un arc à l’écran pour qu’il corresponde :

float orientation = ((event.getOrientation() * 57.2958f) + 90 ) % 360 ;
canvas.drawArc(oval,orientation,5.0f,true,paint);

Boutons

La méthode getButtonState retourne un masque de bits des boutons enfoncés, comme BUTTON_STYLUS_PRIMARY et BUTTON_STYLUS_SECONDARY qui représentent les boutons se trouvant sur le stylet.

Exemples