Kit SDK pour stylet et entrée manuscrite (alpha)

Important

Les fonctionnalités et l’aide décrites dans cet article sont en préversion publique et peuvent faire l’objet de modifications importantes avant leur lancement en disponibilité générale. Microsoft ne donne aucune garantie, expresse ou implicite, concernant les informations fournies ici.

Vous pouvez ajouter le contrôle InkView à une vue. Ce contrôle accepte les entrées tactiles, notamment les attributs supplémentaires disponibles quand le client utilise un stylet.

Configurer votre projet et votre module

Dans votre projet build.gradle, sous >repositories, vérifiez que vous avez ceci :

mavenCentral()

Dans votre module build.gradle, sous , ajoutez le kit SDK pour entrée manuscrite :

implementation "com.microsoft.device:ink:1.0.0-alpha2"

Dans votre module build.gradle, sous >defaultConfig, vérifiez également que minSdkVersion est défini sur l’API 29 (ou plus récente) :

minSdkVersion 29

Ajouter à la disposition

Dans l’élément racine de votre code XML de disposition, ajoutez un espace de noms InkView :

xmlns:InkView="http://schemas.android.com/apk/res-auto"

Ajoutez le contrôle com.microsoft.device.ink.InkView à votre fichier de disposition :

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="32dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">
    <com.microsoft.device.ink.InkView
        android:layout_width="400dp"
        android:layout_height="100dp" />
</FrameLayout>

InkView ayant un arrière-plan transparent, FrameLayout permet de spécifier une autre couleur d’arrière-plan.

Exécuter le code

À ce stade, vous disposez d’une page prenant en charge les entrées manuscrites. Vous pouvez exécuter le code et utiliser le stylet ou un doigt sur la zone InkView.

API InkView

Propriété Description
color Permet de définir la couleur du stylet (par exemple, Color.RED).
enablePressure Permet de détecter différentes valeurs de pression (le cas échéant).
dynamicPaintHandler Permet de définir un gestionnaire personnalisé qui implémente DynamicPaintHandler.
maxStrokeWidth Permet de définir la largeur maximale du trait (quand la pression est égale à 1).
minStrokeWidth Permet de définir la largeur minimale du trait (quand la pression est égale à 0).
Méthode Description
clearInk() Permet d’effacer toute l’entrée manuscrite du stylet.
saveBitmap() Permet de générer une image bitmap de l’entrée manuscrite du stylet.

Interface DynamicPaintHandler

Implémentez cette interface quand vous souhaitez contrôler la peinture du trait chaque fois que InkView peint un nouveau segment. L’utilisation de cette interface a des implications en termes de performances, car InkView appelle votre code chaque fois qu’elle obtient une nouvelle entrée.

import com.microsoft.device.ink.InkView.DynamicPaintHandler
Méthode Description
generatePaintFromPenInfo(penInfo: InputManager.PenInfo): Paint Cette méthode est appelée par InkView chaque fois qu’elle obtient un nouveau segment d’entrée manuscrite à peindre. InkView utilise l’objet Paint retourné pour peindre le segment d’entrée manuscrite suivant.

Classe InputManager.PenInfo

Propriété Type Description
pointerType PointerType Type du pointeur : MOUSE, FINGER, PEN_TIP, PEN_ERASER, UNKNOWN.
x Float Coordonnée x du stylet sur la surface.
y Float Coordonnée y du stylet sur la surface.
pression Float Pression appliquée par le stylet sur l’écran. Consultez la documentation Android.
orientation Float Direction dans laquelle pointe le stylet. Consultez la documentation Android.
tilt Float Angle du stylet en radians. Consultez la documentation Android.
primaryButtonState Boolean True si le bouton principal est enfoncé, False dans le cas contraire.
secondaryButtonState Boolean True si le bouton secondaire est enfoncé, False dans le cas contraire.

Exemple

Cet exemple de projet est disponible sur GitHub :

Exemple d’entrée manuscrite avec stylet

Source et commentaires

Visitez la source sur GitHub pour signaler des problèmes ou fournir des commentaires.