encre

  
Inspirez les meilleures applications de stylet. Réduisez les obstacles à l'entrée pour les développeurs afin de leur permettre de créer des expériences d'encrage performantes et esthétiques. Prise en charge de l'encrage sur Android et la JVM côté serveur (actuellement prise en charge sur Linux pour x86_64).
Dernière mise à jour Version stable Version finale Version bêta Version alpha
23 septembre 2026 1.0.0 - - 1.1.0-alpha09

Déclarer des dépendances

Pour ajouter une dépendance sur Ink, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.

Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :

Groovy

dependencies {
  
    implementation "androidx.ink:ink-authoring:1.1.0-alpha09"
    implementation "androidx.ink:ink-authoring-compose:1.1.0-alpha09"
    implementation "androidx.ink:ink-brush:1.1.0-alpha09"
    implementation "androidx.ink:ink-brush-compose:1.1.0-alpha09"
    implementation "androidx.ink:ink-geometry:1.1.0-alpha09"
    implementation "androidx.ink:ink-geometry-compose:1.1.0-alpha09"
    implementation "androidx.ink:ink-nativeloader:1.1.0-alpha09"
    implementation "androidx.ink:ink-rendering:1.1.0-alpha09"
    implementation "androidx.ink:ink-storage:1.1.0-alpha09"
    implementation "androidx.ink:ink-strokes:1.1.0-alpha09"
    
}

Kotlin

dependencies {


    implementation("androidx.ink:ink-authoring:1.1.0-alpha09")
    implementation("androidx.ink:ink-authoring-compose:1.1.0-alpha09")
    implementation("androidx.ink:ink-brush:1.1.0-alpha09")
    implementation("androidx.ink:ink-brush-compose:1.1.0-alpha09")
    implementation("androidx.ink:ink-geometry:1.1.0-alpha09")
    implementation("androidx.ink:ink-geometry-compose:1.1.0-alpha09")
    implementation("androidx.ink:ink-nativeloader:1.1.0-alpha09")
    implementation("androidx.ink:ink-rendering:1.1.0-alpha09")
    implementation("androidx.ink:ink-storage:1.1.0-alpha09")
    implementation("androidx.ink:ink-strokes:1.1.0-alpha09")
}

Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Ink version 1.1

Version 1.1.0-alpha09

23 septembre 2026

Publication d'androidx.ink:ink-*:1.1.0-alpha09. Liste des commits de la version 1.1.0-alpha09

Modifications apportées à l'API

  • Le décalage de couleur du pinceau fonctionne désormais dans l'espace colorimétrique Oklab, qui préserve mieux la luminosité perçue lors des changements de teinte. Les API SATURATION et LUMINOSITY de décalage de la cible du pinceau ont été renommées CHROMA et LIGHTNESS. (I0ed42)

Correction de bugs

  • La dépendance androidx.lifecycle:lifecycle-runtime a été mise à jour vers la version 2.10.0. Cette version est requise pour que les vérifications lint du runtime de cycle de vie groupé s'exécutent avec AGP version 9.5.0-alpha04 ou ultérieure. (I99bfd, b/556807521)

Version 1.1.0-alpha08

9 septembre 2026

Publication d'androidx.ink:ink-*:1.1.0-alpha08. Liste des commits de la version 1.1.0-alpha08

Modifications apportées à l'API

  • Ajout de la prise en charge du rendu pour KMP iOS via MetalRenderer, sous l'annotation d'activation ExperimentalInkCrossPlatformRenderingApi, basée sur les API communes KMP pour les fonctionnalités de base
  • Target.TEXTURE_ANIMATION_PROGRESS_OFFSET a été renommé Target.PAINT_ANIMATION_PROGRESS_OFFSET. (I8809f)
  • Ajout de surcharges ImmutableAffineTransform.translate(float x, float, y) et MutableAffineTransform populateFromTranslation(float x, float y) (I8809f)
  • Renommage de la propriété DampingNode de dampingSource en dampOver (Id3178)
  • Renommez la propriété DampingNode de dampingGap en strength (I69432).
  • Utilisez le type Vec lorsque vous définissez EasingFunction.CubicBezier au lieu de Floats (I69432).
  • Ajout de l'annotation WorkerThread aux fonctions de gomme d'édition de maillage Stroke.subtract et Stroke.split (I69432)

Correction de bugs

  • Rendre les exemples Brush compatibles avec KMP (I77125)

Version 1.1.0-alpha07

12 août 2026

Publication d'androidx.ink:ink-*:1.1.0-alpha07. Liste des commits de la version 1.1.0-alpha07

Modifications apportées à l'API

  • Correction de la régression des performances affectant les pinceaux à particules denses, mise à jour des constantes Brush.Version en fonction des commentaires sur l'API (I87f0f)

Version 1.1.0-alpha06

29 juillet 2026

Publication d'androidx.ink:ink-*:1.1.0-alpha06. Liste des commits de la version 1.1.0-alpha06

Modifications apportées à l'API

  • Ajout des méthodes calculateMinimumRequiredVersion à l'API pour les sous-types BrushFamily. (I338c9)
  • Exposer les champs de composants AffineTransform (Ic2ec3)
  • Correction d'une fuite de mémoire dans InProgressStrokesView, amélioration des artefacts visuels de l'effaceur partiel expérimental, amélioration de la représentation protobuf pour les calques de texture de pinceau personnalisés (I6ff86)
  • Ajout d'un constructeur d'initialisation pour MutableAffineTransform (pour correspondre à ImmutableAffineTransform) (I96ec7)
  • Ajout de InProgressStroke.clear (Ie0032)
  • Ajouter des méthodes toImmutable aux structures de données avec des sous-classes mutables et immuables (I53835)
  • Migration KMP (Icbf38, b/521850119, b/534309122)

Correction de bugs

  • Ajout de la prise en charge de la gestion des versions des pinceaux et des animations de textures. (Iea9ba)

Version 1.1.0-alpha05

15 juillet 2026

Publication d'androidx.ink:ink-*:1.1.0-alpha05. Liste des commits de la version 1.1.0-alpha05

Modifications apportées à l'API

  • Version expérimentale d'un nouveau type d'effaceur, appelé "effaceur partiel", "effaceur de maillage" ou "effaceur de pixels", qui modifie la géométrie des traits et les divise au lieu de les supprimer entièrement ou de les masquer avec la couleur d'arrière-plan. Les problèmes connus incluent l'absence d'anticrénelage sur les bords coupés et l'absence d'API de sérialisation pour enregistrer les résultats PartitionedMesh effacés, qui seront tous deux disponibles dans les prochaines versions.
  • Ajout de l'annotation Throws manquante à StrokeInputBatchSerialization.decode, ce qui nécessite une mise à jour de la part des consommateurs Java de cette méthode. (I83473, b/522256938)

Correction de bugs

  • Correction d'un plantage natif dû à un problème de précision numérique (I2e1f0, 6618e69, b/523190724)
  • Supprimer les extrusions dégénérées dans BrushTipExtruder (469b629)
  • Correction de RejectedExecutionException dans InProgressStrokesView (b/526696762)

Version 1.1.0-alpha04

17 juin 2026

Publication d'androidx.ink:ink-*:1.1.0-alpha04. Liste des commits de la version 1.1.0-alpha04

Modifications apportées à l'API

  • Correction de problèmes de précision à virgule flottante entraînant des artefacts visuels dans les traits finis, affectant certains appareils après la mise à niveau de l'OS

  • Ajoutez l'API KMP-common pour le module de stockage (en passant de/vers ByteArray au lieu de Java InputStream/OutputStream).

  • Ajoutez une propriété BrushBehavior.developerComment pour contenir les métadonnées expliquant la conception d'une famille de pinceaux personnalisée. Il est destiné à prendre en charge l'UI de l'outil de conception de pinceaux.

  • Correction d'un bug lié aux vérifications de cohérence des threads dans CanvasInProgressStrokesRenderHelperV33.

  • Correction de certains bugs liés à la gestion des champs facultatifs MotionEvent (par exemple, inclinaison, pression).

  • Amélioration de la documentation pour l'API de pinceaux personnalisés.

  • Ajoutez de nouveaux types BrushPaint.ColorFunction.

Version 1.1.0-alpha03

19 mai 2026

Publication d'androidx.ink:ink-*:1.1.0-alpha03. Liste des commits de la version 1.1.0-alpha03

Modifications apportées à l'API

  • Rendre publique l'API de personnalisation programmatique du pinceau Ink (I8e2e1)
  • Scission de BrushPaint.TextureLayer en sous-classes plus spécifiques (I8848a)

Version 1.1.0-alpha02

22 avril 2026

Publication d'androidx.ink:ink-*:1.1.0-alpha02. Liste des commits de la version 1.1.0-alpha02

Modifications apportées à l'API

  • Exposer une surcharge de BrushFamily.decode qui spécifie la compatibilité maximale des versions (I1c7bc)
  • Passage de l'API de sérialisation BrushFamily de la phase expérimentale à la phase stable (Idd16e)

Correction de bugs

  • Correction du scintillement lors de l'utilisation de InProgressStrokesView.maskPath sur certains appareils (I1c7bc, b/496920044)

Version 1.1.0-alpha01

11 mars 2026

Publication d'androidx.ink:ink-*:1.1.0-alpha01. Liste des commits de la version 1.1.0-alpha01

Nouvelles fonctionnalités

  • Divers petits bugs corrigés

Modifications apportées à l'API

  • Ajoutez InProgressShape.isCanceled et corrigez les problèmes de simultanéité dans le module de création. (Ibfd32, b/474385518, b/470695777)
  • Exposition à Java des versions à zéro argument de CanvasStrokeRenderer.create et InProgressStroke.updateShape (Id80a1, b/457715938)

Correction de bugs

  • Correction d'un bug provoquant des plantages dans InProgressStrokesView après le détachement/rattachement de la fenêtre pour les API 29 à 32, autorisation des opérations Vec pour prendre le même MutableVec en entrée et en sortie, fusion des configurations Proguard dans un seul fichier. (Ia4da0)
  • Augmenter la dépendance à graphics-core à 1.0.4 (Ibfa18)

Version 1.0

Version 1.0.0

17 décembre 2025

Publication d'androidx.ink:ink-*:1.0.0. Liste des commits de la version 1.0.0

Correction de bugs

  • Augmentation de la dépendance à graphics-core vers la version 1.0.4 (Ibfa18)

Version 1.0.0-rc01

3 décembre 2025

Publication d'androidx.ink:ink-*:1.0.0-rc01. La version 1.0.0-rc01 contient ces commits.

Correction de bugs

  • Mettez à jour la version de la dépendance. (Iecd04)

Version 1.0.0-beta02

19 novembre 2025

Publication d'androidx.ink:ink-*:1.0.0-beta02. La version 1.0.0-beta02 contient ces commits.

Modifications apportées à l'API

  • API expérimentales de formes personnalisées à faible latence, corrections de bugs divers (Ib8d2f)

Correction de bugs

  • Amélioration de la précision à virgule flottante lors de la sérialisation StrokeInputBatch, ce qui corrige une dérive des valeurs due à l'encodage et au décodage répétés
  • Assainissement plus robuste des entrées système.
  • Correction de la compatibilité avec la texture du pinceau dans le composable InProgressStrokes

Version 1.0.0-beta01

22 octobre 2025

Publication d'androidx.ink:ink-*:1.0.0-beta01. La version 1.0.0-beta01 contient ces commits.

Correction de bugs

  • Correction de bugs en vue de la sortie de la version bêta 01 (I9900e)
  • Réduction des artefacts de rendu dans les traits en raison d'un trop grand nombre d'entrées modélisées trop proches les unes des autres.
  • Correction d'un plantage rare dans la modélisation des entrées.

Version 1.0.0-alpha07

8 octobre 2025

Publication d'androidx.ink:ink-*:1.0.0-alpha07. Liste des commits de la version 1.0.0-alpha07

Nouvelles fonctionnalités

  • Paramètre SelfOverlap pour StockBrushes highlighter et emojiHighlighter, qui remplace InProgressStrokesView rendererFactory
  • Amélioration de l'implémentation du lissage des entrées de traits, qui élimine le bruit de mesure de l'appareil, mais qui reflète plus précisément l'entrée utilisateur que l'implémentation précédente du lissage des entrées de traits
  • Cohérence améliorée avec d'autres API Android/Jetpack pour les unités d'angle (degrés vs radians), les transformations (inclinaison vs cisaillement), etc.

Modifications apportées à l'API

  • Modifiez l'API liée à l'angle pour utiliser des degrés et inclure l'unité dans les noms, indiquez clairement les unités dans les utilitaires de conversion d'angle et acceptez les degrés et les radians, modifiez l'API StockBrushes pour prendre la version du pinceau de stock comme paramètre de fonction de fabrique et exposez le contrôle du comportement de chevauchement automatique pour les pinceaux de surligneur, renommez MutableAffineTransform.populateFromTranslate en populateFromTranslation et supprimez InProgressStrokesView.setRenderFactory/getRenderFactory. (Id9eab, b/436656418)
  • Renommage de "shear" en "skew", clarification de la documentation, suppression de CanvasStrokeRenderer.strokeModifiedRegionOutsetPx et ajout de InProgressStroke.changesWithTime (Ia5e70, b/436656418)

Correction de bugs

  • Améliorer la modélisation des entrées pour que les traits reflètent plus précisément les entrées. (I93097)

Version 1.0.0-alpha06

13 août 2025

Publication d'androidx.ink:ink-*:1.0.0-alpha06. Liste des commits de la version 1.0.0-alpha06

Nouvelles fonctionnalités

  • Pinceau de surligneur Emoji : surlignez des parties d'un document avec l'emoji de votre choix pour ajouter une touche amusante et vous aider à rester organisé.
  • Plus d'API d'assistance pour les formes primitives du module de géométrie
  • Améliorer la compatibilité et les performances des appareils

Modifications apportées à l'API

  • API simplifiée pour InProgressStrokesView, API de géométrie de fin, surligneur d'emojis, suppression des fonctions de fabrique de MutableParallelogram au profit des méthodes de remplissage, prise en charge du seed pour les comportements de pinceau aléatoires. (I38280)

Correction de bugs

  • Correction d'un problème de performances et d'un problème de cohérence des couleurs sur peau sèche et humide. (Ifcd1d)

Version 1.0.0-alpha05

18 juin 2025

Publication d'androidx.ink:ink-*:1.0.0-alpha05. Liste des commits de la version 1.0.0-alpha05

Nouvelles fonctionnalités

  • Modules d'interopérabilité Compose pour les modules d'auteur, de pinceau et de géométrie

Modifications apportées à l'API

  • Nouveaux modules et API d'interopérabilité Compose, nettoyage de l'API (I0e464)
  • Les méthodes InProgressStroke.enqueueInputs/updateShape qui renvoyaient kotlin.Result ont été supprimées. Les clients doivent utiliser, par exemple, enqueueInputsOrThrow ou enqueueInputsOrIgnore à la place. InProgressStroke.getNeedsUpdate a été renommé isUpdateNeeded. InProgressStroke.populateOutlinePosition renvoie désormais son paramètre de sortie pour permettre le chaînage d'appels, comme les autres méthodes d'Ink. L'interface TextureBitmapStore est déplacée du module de rendu vers le module de pinceau. BoxAccumulator.populateFrom est conçu pour prendre une boîte immuable nullable au lieu d'un BoxAccumulator mutable. Pour indiquer plus clairement ce qui est muté, les appelants doivent remplacer boxAccumulator.add(other) par boxAccumulator.add(other.box). Les BrushUtil.toBuilderWithAndroidColor/createBuilderWithAndroidColor sont supprimés. Utilisez plutôt le setAndroidColor de Brush.Builder après la construction. (Ia7155)
  • La propriété expérimentale InProgressStrokesView.textureBitmapStore est désormais privée. Il existe encore des accesseurs publics pour cette propriété. (I1d706)

Correction de bugs

  • Amélioration des performances pour les pinceaux personnalisés contenant de nombreuses particules.

Version 1.0.0-alpha04

9 avril 2025

Publication d'androidx.ink:ink-*:1.0.0-alpha04. Liste des commits de la version 1.0.0-alpha04

Nouvelles fonctionnalités

  • Introduction de nouvelles API expérimentales pour les objets BrushFamily personnalisés, permettant de nouveaux pinceaux tels que le crayon et le pointeur laser. L'API permet de charger les pinceaux définis par ce proto. (I8809a)

Version 1.0.0-alpha03

12 février 2025

Publication d'androidx.ink:ink-*:1.0.0-alpha03. Liste des commits de la version 1.0.0-alpha03

Nouvelles fonctionnalités

  • Économies de taille de disque et de réseau : sérialisation de StrokeInputBatch, ce qui permet d'économiser de nombreuses lignes de code, avec des objets résultants qui ne représentent qu'une infime partie de la taille des traits stockés de manière traditionnelle. (Ie898d)
  • Sélection au lasso : un pinceau à ligne pointillée pour dessiner un trait de sélection et une fonction pour transformer le trait de sélection en PartitionedMesh pour les requêtes géométriques. (Ia38a0)

Version 1.0.0-alpha02

11 décembre 2024

Publication d'androidx.ink:ink-*:1.0.0-alpha02. Liste des commits de la version 1.0.0-alpha02

Modifications apportées à l'API

  • Divers bugs ont été corrigés. (I05dd8)

Contribution externe

  • Abandon de BuildCompat.isAtLeastV. Les appelants doivent plutôt vérifier SDK_INT par rapport à 35 directement. (I294d1)

Version 1.0.0-alpha01

2 octobre 2024

Publication d'androidx.ink:ink-*:1.0.0-alpha01. Liste des commits de la version 1.0.0-alpha01

Nouvelles fonctionnalités

  • Bibliothèque modulaire et configurable permettant de créer, d'afficher et de manipuler facilement de magnifiques traits d'encre créés dans votre application.

Modifications apportées à l'API

Nouveaux modules pour aider les développeurs à créer des expériences d'encrage riches :

  • Création : utilisez InProgressStrokesView pour un rendu des traits à hautes performances et à faible latence en temps réel à mesure que les entrées sont reçues.
  • Rendu : utilisez CanvasStrokeRenderer et ViewStrokeRenderer pour dessiner les traits d'encre finis dans l'interface utilisateur d'une application.
  • Traits : types de données de base utilisés pour les fonctionnalités d'encrage.
  • Pinceau : spécification configurable de l'apparence et du comportement des traits en réponse aux entrées utilisateur.
  • Géométrie : opérations géométriques telles que l'intersection et la couverture pour alimenter des outils comme la sélection et l'effacement.