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 allprojects
>repositories
, vérifiez que vous avez ceci :
mavenCentral()
Dans votre module build.gradle, sous dependencies
, ajoutez le kit SDK pour entrée manuscrite :
implementation "com.microsoft.device:ink:1.0.0-alpha2"
Dans votre module build.gradle, sous android
>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 :
Source et commentaires
Visitez la source sur GitHub pour signaler des problèmes ou fournir des commentaires.