tinta

  
Inspirar las mejores apps para lápices Reducir la barrera de entrada para los desarrolladores y ofrecer experiencias de escritura a mano hermosas y de alto rendimiento Admite la entrada de lápiz en Android y la JVM del servidor (actualmente, se admite en Linux para x86_64).
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
9 de septiembre de 2026 1.0.0 - - 1.1.0-alpha08

Cómo declarar dependencias

Para agregar una dependencia en Ink, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta el repositorio de Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

Groovy

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

Kotlin

dependencies {


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

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

Consulta la documentación sobre la herramienta Issue Tracker para obtener más información.

Versión 1.1 de Ink

Versión 1.1.0-alpha08

9 de septiembre de 2026

Lanzamiento de androidx.ink:ink-*:1.1.0-alpha08. La versión 1.1.0-alpha08 contiene estas confirmaciones.

Cambios en la API

  • Se agregó compatibilidad con la renderización para KMP iOS a través de MetalRenderer, bajo la anotación de participación ExperimentalInkCrossPlatformRenderingApi, basada en las APIs comunes de KMP para la funcionalidad principal.
  • Se cambia el nombre de Target.TEXTURE_ANIMATION_PROGRESS_OFFSET a Target.PAINT_ANIMATION_PROGRESS_OFFSET. (I8809f)
  • Se agregaron sobrecargas de ImmutableAffineTransform.translate(float x, float, y) y MutableAffineTransform populateFromTranslation(float x, float y) (I8809f).
  • Se cambió el nombre de la propiedad DampingNode de dampingSource a dampOver (Id3178).
  • Se cambió el nombre de la propiedad DampingNode de dampingGap a strength (I69432)
  • Usa el tipo Vec cuando definas EasingFunction.CubicBezier en lugar de Float (I69432)
  • Agrega la anotación WorkerThread a las funciones de borrador de edición de malla Stroke.subtract y Stroke.split (I69432).

Correcciones de errores

  • Se hizo que las muestras de Brush sean compatibles con KMP (I77125).

Versión 1.1.0-alpha07

12 de agosto de 2026

Lanzamiento de androidx.ink:ink-*:1.1.0-alpha07. La versión 1.1.0-alpha07 contiene estas confirmaciones.

Cambios en la API

  • Se corrigió la regresión del rendimiento que afectaba a los pinceles de partículas densas y se actualizaron las constantes de Brush.Version según los comentarios de la API (I87f0f).

Versión 1.1.0-alpha06

29 de julio de 2026

Lanzamiento de androidx.ink:ink-*:1.1.0-alpha06. La versión 1.1.0-alpha06 contiene estas confirmaciones.

Cambios en la API

  • Se agregaron métodos calculateMinimumRequiredVersion a la API para los subtipos de BrushFamily. (I338c9)
  • Expón los campos del componente AffineTransform (Ic2ec3).
  • Se corrigió una fuga de memoria en InProgressStrokesView, se mejoraron los artefactos visuales experimentales del borrador parcial de trazos y se mejoró la representación de protobuf para las capas de texturas de pinceles personalizados (I6ff86).
  • Se agregó un constructor de inicialización para MutableAffineTransform (para que coincida con ImmutableAffineTransform) (I96ec7).
  • Se agregó InProgressStroke.clear (Ie0032).
  • Agrega métodos toImmutable a estructuras de datos con subclases mutables e inmutables (I53835)
  • Migración de KMP (Icbf38, b/521850119, b/534309122)

Correcciones de errores

  • Se agregó más compatibilidad con el control de versiones de pinceles y las animaciones de texturas. (Iea9ba)

Versión 1.1.0-alpha05

15 de julio de 2026

Lanzamiento de androidx.ink:ink-*:1.1.0-alpha05. La versión 1.1.0-alpha05 contiene estas confirmaciones.

Cambios en la API

  • Se lanzó de forma experimental un nuevo tipo de borrador, conocido como borrador de "trazo parcial", "edición de malla" o "píxel", que edita la geometría del trazo y lo divide en lugar de borrarlo por completo o enmascararlo con el color de fondo. Entre los problemas conocidos, se incluyen la falta de suavizado en los bordes cortados y la ausencia de APIs de serialización para guardar los resultados de PartitionedMesh borrado, que se incluirán en versiones futuras.
  • Se agregó la anotación Throws faltante a StrokeInputBatchSerialization.decode, lo que requiere una actualización de los consumidores de Java de ese método. (I83473, b/522256938)

Correcciones de errores

  • Se corrigió una falla nativa causada por un problema de precisión numérica (I2e1f0, 6618e69, b/523190724).
  • Descarta las extrusiones degeneradas en BrushTipExtruder (469b629).
  • Se corrigió RejectedExecutionException en InProgressStrokesView (b/526696762).

Versión 1.1.0-alpha04

17 de junio de 2026

Lanzamiento de androidx.ink:ink-*:1.1.0-alpha04. La versión 1.1.0-alpha04 contiene estas confirmaciones.

Cambios en la API

  • Se corrigieron problemas de precisión de punto flotante que provocaban artefactos visuales en los trazos terminados, lo que afectaba a ciertos dispositivos después de las actualizaciones del SO.

  • Se agregó la API de KMP-common para el módulo de almacenamiento (se va a ByteArray en lugar de Java InputStream/OutputStream).

  • Agrega una propiedad BrushBehavior.developerComment para contener metadatos que expliquen el diseño de una familia de pinceles personalizada. Esto tiene como objetivo admitir la IU del diseñador de pinceles.

  • Se corrigió un error en las verificaciones de coherencia de subprocesos en CanvasInProgressStrokesRenderHelperV33.

  • Se corrigieron algunos errores en el manejo de los campos opcionales de MotionEvent (p.ej., inclinación y presión).

  • Se mejoró la documentación de la API de pincel personalizado.

  • Agrega nuevos tipos de BrushPaint.ColorFunction.

Versión 1.1.0-alpha03

19 de mayo de 2026

Lanzamiento de androidx.ink:ink-*:1.1.0-alpha03. La versión 1.1.0-alpha03 contiene estas confirmaciones.

Cambios en la API

  • Se hace pública la API de personalización programática del pincel de tinta (I8e2e1)
  • Divide BrushPaint.TextureLayer en subclases más específicas (I8848a).

Versión 1.1.0-alpha02

22 de abril de 2026

Lanzamiento de androidx.ink:ink-*:1.1.0-alpha02. La versión 1.1.0-alpha02 contiene estas confirmaciones.

Cambios en la API

  • Expone una sobrecarga de BrushFamily.decode que especifica la compatibilidad con la versión máxima (I1c7bc).
  • La API de serialización BrushFamily cambia de experimental (Idd16e).

Correcciones de errores

  • Se corrigió el parpadeo que se producía al usar InProgressStrokesView.maskPath en ciertos dispositivos (I1c7bc, b/496920044).

Versión 1.1.0-alpha01

11 de marzo de 2026

Lanzamiento de androidx.ink:ink-*:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Se corrigieron varios errores menores.

Cambios en la API

  • Se agregó InProgressShape.isCanceled y se corrigieron problemas de simultaneidad en el módulo de creación. (Ibfd32, b/474385518, b/470695777)
  • Se expuso la versión sin argumentos de CanvasStrokeRenderer.create y InProgressStroke.updateShape a Java (Id80a1, b/457715938).

Correcciones de errores

  • Se corrigió un error que provocaba fallas en InProgressStrokesView después de separar o volver a conectar la ventana para las APIs del 29 al 32, se permitió que las operaciones de Vec tomaran el mismo MutableVec como entrada y salida, y se combinaron las configuraciones de Proguard en un solo archivo. (Ia4da0)
  • Se aumentó la dependencia de graphics-core a 1.0.4 (Ibfa18).

Versión 1.0

Versión 1.0.0

17 de diciembre de 2025

Lanzamiento de androidx.ink:ink-*:1.0.0. La versión 1.0.0 contiene estas confirmaciones.

Correcciones de errores

  • Se aumentó la dependencia de graphics-core a 1.0.4 (Ibfa18).

Versión 1.0.0-rc01

3 de diciembre de 2025

Lanzamiento de androidx.ink:ink-*:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.

Correcciones de errores

  • Se actualizó la versión de la dependencia. (Iecd04)

Versión 1.0.0-beta02

19 de noviembre de 2025

Lanzamiento de androidx.ink:ink-*:1.0.0-beta02. La versión 1.0.0-beta02 contiene estas confirmaciones.

Cambios en la API

  • APIs experimentales personalizadas de formas con latencia baja y correcciones de errores varios (Ib8d2f)

Correcciones de errores

  • Se mejoró la precisión de punto flotante en la serialización de StrokeInputBatch, lo que corrigió una desviación en los valores debido a la codificación y decodificación repetidas.
  • Se mejoró la limpieza de las entradas del sistema.
  • Se corrigió la compatibilidad con la textura del pincel en el elemento InProgressStrokes componible.

Versión 1.0.0-beta01

22 de octubre de 2025

Lanzamiento de androidx.ink:ink-*:1.0.0-beta01. La versión 1.0.0-beta01 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigieron errores en preparación para el lanzamiento de la versión beta01 (I9900e).
  • Reduce los artefactos de renderización en los trazos debido a que hay demasiadas entradas modeladas demasiado cerca entre sí.
  • Se corrigió una falla poco común en el modelado de entrada.

Versión 1.0.0-alpha07

8 de octubre de 2025

Lanzamiento de androidx.ink:ink-*:1.0.0-alpha07. La versión 1.0.0-alpha07 contiene estas confirmaciones.

Nuevas funciones

  • Parámetro SelfOverlap para StockBrushes highlighter y emojiHighlighter, que reemplaza a InProgressStrokesView rendererFactory
  • Se mejoró la implementación del suavizado de entrada de trazos, lo que elimina el ruido de medición del dispositivo, pero refleja con mayor precisión la entrada del usuario que la implementación anterior del suavizado de entrada de trazos.
  • Se mejoró la coherencia con otras APIs de Android o Jetpack para las unidades de ángulo (grados vs. radianes), las transformaciones (sesgo vs. distorsión) y mucho más.

Cambios en la API

  • Se cambió la API relacionada con el ángulo para que use grados y se incluya la unidad en los nombres, se aclararon las unidades en las utilidades de conversión de ángulos y se admitieron grados y radianes, se cambió la API de StockBrushes para que tome la versión del pincel de stock como un parámetro de función de fábrica y se expuso el control del comportamiento de superposición automática para los pinceles resaltadores, se cambió el nombre de MutableAffineTransform.populateFromTranslate a populateFromTranslation y se quitó InProgressStrokesView.setRenderFactory/getRenderFactory. (Id9eab, b/436656418)
  • Se cambió el nombre de shear a skew, se aclaró parte de la documentación, se quitó CanvasStrokeRenderer.strokeModifiedRegionOutsetPx y se agregó InProgressStroke.changesWithTime (Ia5e70, b/436656418).

Correcciones de errores

  • Mejoramos el modelado de entrada para que los trazos reflejen con mayor precisión la entrada. (I93097)

Versión 1.0.0-alpha06

13 de agosto de 2025

Lanzamiento de androidx.ink:ink-*:1.0.0-alpha06. La versión 1.0.0-alpha06 contiene estas confirmaciones.

Nuevas funciones

  • Pincel de resaltador de emojis: Resalta partes de un documento con el emoji que elijas para agregar un toque divertido y mantener la organización.
  • Más APIs de ayuda para formas primitivas del módulo de geometría
  • Mejora la compatibilidad y el rendimiento del dispositivo

Cambios en la API

  • Se simplificó la API para InProgressStrokesView, se finalizaron las APIs de geometría, se agregó un resaltador de emojis, se quitaron las funciones de fábrica de MutableParallelogram y se agregaron métodos de propagación, y se agregó compatibilidad con la semilla para los comportamientos aleatorios del pincel. (I38280)

Correcciones de errores

  • Se corrigieron un problema de rendimiento y un problema de coherencia del color en condiciones húmedas y secas. (Ifcd1d)

Versión 1.0.0-alpha05

18 de junio de 2025

Lanzamiento de androidx.ink:ink-*:1.0.0-alpha05. La versión 1.0.0-alpha05 contiene estas confirmaciones.

Nuevas funciones

  • Módulos de interoperabilidad de Compose para los módulos de creación, pincel y geometría

Cambios en la API

  • Nuevos módulos y APIs de interoperabilidad de Compose, limpieza de APIs (I0e464)
  • Se quitaron los métodos InProgressStroke.enqueueInputs/updateShape que devolvían kotlin.Result. En su lugar, los clientes deben usar, p. ej., enqueueInputsOrThrow o enqueueInputsOrIgnore. Se cambió el nombre de InProgressStroke.getNeedsUpdate por isUpdateNeeded. Ahora InProgressStroke.populateOutlinePosition devuelve su parámetro de salida para permitir el encadenamiento de llamadas, de manera coherente con otros métodos en Ink. La interfaz TextureBitmapStore se trasladó del módulo de renderización al módulo de pincel. BoxAccumulator.populateFrom se creó para tomar un Box inmutable anulable en lugar de un BoxAccumulator mutable, para que quede más claro qué se muta. Los llamadores deben cambiar boxAccumulator.add(other) a boxAccumulator.add(other.box). Se quitaron los BrushUtil.toBuilderWithAndroidColor/createBuilderWithAndroidColor. En su lugar, usa el setAndroidColor de Brush.Builder después de la construcción. (Ia7155)
  • La propiedad experimental InProgressStrokesView.textureBitmapStore ahora es privada. Aún existen descriptores de acceso públicos para esta propiedad. (I1d706)

Correcciones de errores

  • Se mejoró el rendimiento de los pinceles personalizados que contienen muchas partículas.

Versión 1.0.0-alpha04

9 de abril de 2025

Lanzamiento de androidx.ink:ink-*:1.0.0-alpha04. La versión 1.0.0-alpha04 contiene estas confirmaciones.

Nuevas funciones

  • Se introdujeron nuevas APIs experimentales para objetos BrushFamily personalizados, lo que permite usar nuevos pinceles, como Lápiz y Puntero láser. La API permite cargar pinceles definidos por este .proto. (I8809a)

Versión 1.0.0-alpha03

12 de febrero de 2025

Lanzamiento de androidx.ink:ink-*:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • Ahorro en el tamaño del disco y la red: La serialización de StrokeInputBatch ahorra muchas líneas de código, y los objetos resultantes son una pequeña fracción del tamaño de los trazos almacenados tradicionalmente. (Ie898d)
  • Selección con lazo: Pincel de línea punteada para dibujar un trazo de selección y una función para convertir el trazo de selección en un PartitionedMesh para las búsquedas de geometría. (Ia38a0)

Versión 1.0.0-alpha02

11 de diciembre de 2024

Lanzamiento de androidx.ink:ink-*:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Cambios en la API

  • Se corrigieron varios errores. (I05dd8)

Contribución externa

  • BuildCompat.isAtLeastV dejó de estar disponible. Los emisores deben verificar SDK_INT en 35 directamente. (I294d1).

Versión 1.0.0-alpha01

2 de octubre de 2024

Lanzamiento de androidx.ink:ink-*:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Una biblioteca modular y configurable para facilitar la creación, la renderización y la manipulación de trazos de tinta atractivos creados en tu aplicación.

Cambios en la API

Nuevos módulos para ayudar a los desarrolladores a crear experiencias de escritura enriquecidas:

  • Creación: Usa InProgressStrokesView para renderizar trazos en tiempo real con alto rendimiento y baja latencia a medida que se reciben las entradas.
  • Renderización: Usa CanvasStrokeRenderer y ViewStrokeRenderer para dibujar los trazos de tinta terminados como parte de la interfaz de usuario de una app.
  • Trazos: Son los tipos de datos principales que se usan para las funciones de escritura a mano.
  • Pincel: Especificación configurable de cómo se verán y actuarán los trazos en respuesta a la entrada del usuario.
  • Geometría: Operaciones geométricas, como intersección y cobertura, para potenciar herramientas como la selección y el borrado.