墨水

  
激发一流触控笔应用的灵感。降低了开发者实现高性能、美观墨迹体验的门槛。支持在 Android 和服务器端 JVM 上进行墨迹书写(目前在 Linux 上支持 x86_64)。
最近更新时间 稳定版 候选版 Beta 版 Alpha 版
2026 年 9 月 23 日 1.0.0 - - 1.1.0-alpha09

声明依赖项

如需添加 Ink 的依赖项,您必须将 Google Maven 制品库添加到项目中。如需了解详情,请参阅 Google 的 Maven 代码库

在应用或模块的 build.gradle 文件中添加所需工件的依赖项:

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")
}

如需详细了解依赖项,请参阅添加 build 依赖项

反馈

您的反馈将帮助我们改进 Jetpack。如果您发现了新问题,或对此库有任何改进建议,请告诉我们。创建新问题前,请先查看此库中的现有问题。您可以点击星标按钮,为现有问题投票。

创建新问题

如需了解详情,请参阅问题跟踪器文档

Ink 版本 1.1

版本 1.1.0-alpha09

2026 年 9 月 23 日

发布了 androidx.ink:ink-*:1.1.0-alpha09。版本 1.1.0-alpha09 中包含这些提交内容

API 变更

  • 将笔刷颜色偏移更改为在 Oklab 色彩空间中运行,这样可以更好地保留色调偏移中的感知亮度。将 SATURATIONLUMINOSITY 移位画笔目标 API 分别重命名为了 CHROMALIGHTNESS。(I0ed42)

bug 修复

  • androidx.lifecycle:lifecycle-runtime 依赖项已更新为 2.10.0。如果要在 AGP 9.5.0-alpha04 版或更高版本中运行捆绑的生命周期运行时 lint 检查,则必须使用此版本。(I99bfdb/556807521

版本 1.1.0-alpha08

2026 年 9 月 9 日

发布了 androidx.ink:ink-*:1.1.0-alpha08。版本 1.1.0-alpha08 中包含这些提交内容

API 变更

  • 通过 MetalRenderer 在选择启用注释 ExperimentalInkCrossPlatformRenderingApi 下添加了对 KMP iOS 的渲染支持,该支持基于 KMP 通用 API 实现核心功能
  • Target.TEXTURE_ANIMATION_PROGRESS_OFFSET 重命名为 Target.PAINT_ANIMATION_PROGRESS_OFFSET。(I8809f)
  • 添加了重载 ImmutableAffineTransform.translate(float x, float, y)MutableAffineTransform populateFromTranslation(float x, float y) (I8809f)
  • DampingNode 属性从 dampingSource 重命名为 dampOver (Id3178)
  • DampingNode 属性从 dampingGap 重命名为 strength (I69432)
  • 在定义 EasingFunction.CubicBezier 时使用 Vec 类型,而不是 FloatI69432
  • 为网格编辑橡皮擦函数 Stroke.subtractStroke.split 添加了 WorkerThread 注释 (I69432)

bug 修复

  • 使 Brush 示例与 KMP 兼容 (I77125)

版本 1.1.0-alpha07

2026 年 8 月 12 日

发布了 androidx.ink:ink-*:1.1.0-alpha07。版本 1.1.0-alpha07 中包含这些提交内容

API 变更

  • 修复了影响密集粒子笔刷的性能回归问题,并根据 API 反馈更新了 Brush.Version 常量 (I87f0f)

版本 1.1.0-alpha06

2026 年 7 月 29 日

发布了 androidx.ink:ink-*:1.1.0-alpha06。版本 1.1.0-alpha06 中包含这些提交内容

API 变更

  • BrushFamily 子类型的 API 添加了 calculateMinimumRequiredVersion 方法。(I338c9)
  • 公开 AffineTransform 组件字段 (Ic2ec3)
  • 修复了 InProgressStrokesView 中的内存泄漏问题,改进了实验性部分笔划橡皮擦视觉伪影,改进了自定义笔刷纹理层的 protobuf 表示法 (I6ff86)
  • MutableAffineTransform 添加了初始化构造函数(以匹配 ImmutableAffineTransform)(I96ec7)
  • 添加了 InProgressStroke.clear (Ie0032)
  • 向具有可变和不可变子类的数据结构添加了 toImmutable 方法 (I53835)
  • KMP 迁移(Icbf38b/521850119b/534309122

bug 修复

  • 进一步支持了笔刷版本控制和纹理动画。(Iea9ba)

版本 1.1.0-alpha05

2026 年 7 月 15 日

发布了 androidx.ink:ink-*:1.1.0-alpha05。版本 1.1.0-alpha05 中包含这些提交内容

API 变更

  • 实验性发布了新的橡皮擦类型,称为“局部笔画”“网格编辑”或“像素”橡皮擦,可用于编辑笔画几何形状和拆分笔画,而不是删除整个笔画或使用背景颜色遮盖笔画。已知问题包括剪切边缘缺少抗锯齿功能,以及没有用于保存擦除PartitionedMesh结果的序列化 API,这两个问题都将在未来版本中得到解决。
  • StrokeInputBatchSerialization.decode 添加了缺失的 Throws 注释,要求该方法的 Java 使用者进行更新。(I83473b/522256938

bug 修复

  • 修复了因数值精度问题而导致的原生崩溃(I2e1f06618e69b/523190724
  • 舍弃了 BrushTipExtruder 中的退化拉伸 (469b629)
  • 修复了 InProgressStrokesView 中的 RejectedExecutionException (b/526696762)

版本 1.1.0-alpha04

2026 年 6 月 17 日

发布了 androidx.ink:ink-*:1.1.0-alpha04。版本 1.1.0-alpha04 中包含这些提交内容

API 变更

  • 修复了浮点精度问题,该问题会导致完成的笔画出现视觉伪影,影响升级操作系统后的某些设备

  • 为存储模块添加了 KMP-common API(从 ByteArray 到 而不是 Java InputStream/OutputStream)。

  • 添加一个 BrushBehavior.developerComment 属性,用于保存说明自定义笔刷系列设计的元数据。旨在支持笔刷设计器界面。

  • 修复了 CanvasInProgressStrokesRenderHelperV33 中线程一致性检查方面的一个 bug。

  • 修复了处理 MotionEvent 可选字段(例如倾斜度、压力)时的一些 bug。

  • 改进了自定义笔刷 API 的文档。

  • 添加了新的 BrushPaint.ColorFunction 类型。

版本 1.1.0-alpha03

2026 年 5 月 19 日

发布了 androidx.ink:ink-*:1.1.0-alpha03。版本 1.1.0-alpha03 中包含这些提交内容

API 变更

  • 将程序化墨水笔刷自定义 API 公开 (I8e2e1)
  • BrushPaint.TextureLayer 拆分为更具体的子类 (I8848a)

版本 1.1.0-alpha02

2026 年 4 月 22 日

发布了 androidx.ink:ink-*:1.1.0-alpha02。版本 1.1.0-alpha02 中包含这些提交内容

API 变更

  • 公开 BrushFamily.decode 的重载,用于指定最大版本兼容性 (I1c7bc)
  • BrushFamily 序列化 API 从实验性 API 升级为正式版 (Idd16e)

bug 修复

  • 修复了在某些设备上使用 InProgressStrokesView.maskPath 时出现的闪烁问题(I1c7bcb/496920044

版本 1.1.0-alpha01

2026 年 3 月 11 日

发布了 androidx.ink:ink-*:1.1.0-alpha01。版本 1.1.0-alpha01 中包含这些提交内容

新功能

  • 各种小 bug 修复

API 变更

  • 添加了 InProgressShape.isCanceled,修复了创作模块中的并发问题。(Ibfd32b/474385518b/470695777
  • 向 Java 公开了 CanvasStrokeRenderer.createInProgressStroke.updateShape 的零实参版本(Id80a1b/457715938

bug 修复

  • 修复了以下 bug:在 API 29-32 中,从窗口分离/重新附加后,InProgressStrokesView 中发生崩溃;允许 Vec 操作将相同的 MutableVec 作为输入和输出;将 Proguard 配置合并到一个文件中。(Ia4da0)
  • 将对 graphics-core 的依赖项增加到 1.0.4 (Ibfa18)

版本 1.0

版本 1.0.0

2025 年 12 月 17 日

发布了 androidx.ink:ink-*:1.0.0。版本 1.0.0 中包含这些提交内容

bug 修复

  • 将对 graphics-core 的依赖项增加到 1.0.4 (Ibfa18)

版本 1.0.0-rc01

2025 年 12 月 3 日

发布了 androidx.ink:ink-*:1.0.0-rc01。版本 1.0.0-rc01 中包含这些提交内容

bug 修复

  • 更新依赖项版本。(Iecd04)

版本 1.0.0-beta02

2025 年 11 月 19 日

发布了 androidx.ink:ink-*:1.0.0-beta02。版本 1.0.0-beta02 中包含这些提交内容

API 变更

  • 实验性自定义低延迟形状 API,各种 bug 修复 (Ib8d2f)

bug 修复

  • 改进了 StrokeInputBatch 序列化中的浮点精度,修复了因重复编码和解码而导致的值漂移
  • 更强大的系统输入清理功能。
  • 修复了 InProgressStrokes 可组合函数中的笔刷纹理支持

版本 1.0.0-beta01

October 22, 2025

发布了 androidx.ink:ink-*:1.0.0-beta01。版本 1.0.0-beta01 中包含这些提交内容

bug 修复

  • 为发布 beta01 版而进行的 bug 修复 (I9900e)
  • 减少因过多的模型输入彼此过于接近而导致笔画中出现渲染伪影的情况。
  • 修复了输入建模中发生的罕见崩溃问题。

版本 1.0.0-alpha07

2025 年 10 月 8 日

发布了 androidx.ink:ink-*:1.0.0-alpha07。版本 1.0.0-alpha07 中包含这些提交内容

新功能

  • StockBrushes highlighteremojiHighlighterSelfOverlap 参数,用于替换 InProgressStrokesView rendererFactory
  • 改进了笔画输入平滑处理的实现,可消除设备测量噪声,但比之前的笔画输入平滑处理实现更准确地反映用户输入
  • 改进了角度单位(度与弧度)、变换(倾斜与剪切)等方面与其他 Android/Jetpack API 的一致性

API 变更

  • 更改了角度相关 API 以使用度数并在名称中包含单位,明确了角度转换实用程序的单位并同时支持度数和弧度,更改了 StockBrushes API 以将库存画笔版本作为工厂函数参数,并公开了荧光笔的自重叠行为控制,将 MutableAffineTransform.populateFromTranslate 重命名为 populateFromTranslation,移除了 InProgressStrokesView.setRenderFactory/getRenderFactory。(Id9eabb/436656418
  • 将剪切重命名为倾斜,明确了一些文档,移除了 CanvasStrokeRenderer.strokeModifiedRegionOutsetPx,添加了 InProgressStroke.changesWithTimeIa5e70b/436656418

bug 修复

  • 改进了输入建模,使笔画能更准确地反映输入。(I93097)

版本 1.0.0-alpha06

2025 年 8 月 13 日

发布了 androidx.ink:ink-*:1.0.0-alpha06。版本 1.0.0-alpha06 中包含这些提交内容

新功能

  • 表情符号荧光笔笔刷:使用您选择的任何表情符号突出显示文档的某些部分,增添趣味性并帮助您保持井井有条。
  • 为几何模块的图元形状添加了更多辅助 API
  • 提高设备兼容性和性能

API 变更

  • 简化了 InProgressStrokesView 的 API,完成了几何图形 API,添加了表情符号突出显示器,移除了 MutableParallelogram 中的工厂函数,改用填充方法,支持随机画笔行为的种子。(I38280)

bug 修复

  • 修复了性能问题以及湿/干颜色一致性问题。(Ifcd1d)

版本 1.0.0-alpha05

2025 年 6 月 18 日

发布了 androidx.ink:ink-*:1.0.0-alpha05。版本 1.0.0-alpha05 中包含这些提交内容

新功能

  • 为创作、笔刷和几何模块编写互操作模块

API 变更

  • 新的 Compose 互操作性模块和 API,API 清理 (I0e464)
  • 移除了返回 kotlin.ResultInProgressStroke.enqueueInputs/updateShape 方法,客户端应改用 enqueueInputsOrThrowenqueueInputsOrIgnore 等方法。InProgressStroke.getNeedsUpdate 已重命名为 isUpdateNeededInProgressStroke.populateOutlinePosition 现在会返回其输出参数,以实现调用链,这与 Ink 中的其他方法保持一致。TextureBitmapStore 接口已从渲染模块移至笔刷模块。BoxAccumulator.populateFrom 现在接受可为 null 的不可变 Box,而不是可变的 BoxAccumulator,以便更清楚地了解哪些内容发生了变化。调用方应将 boxAccumulator.add(other) 更改为 boxAccumulator.add(other.box)。移除了 BrushUtil.toBuilderWithAndroidColor/createBuilderWithAndroidColor,请在构造后改用 Brush.BuildersetAndroidColor。(Ia7155)
  • 之前为实验性媒体资源的 InProgressStrokesView.textureBitmapStore 现已设为不公开。此属性仍有公共访问器。(I1d706)

bug 修复

  • 改进了包含许多粒子的自定义笔刷的性能。

版本 1.0.0-alpha04

2025 年 4 月 9 日

发布了 androidx.ink:ink-*:1.0.0-alpha04。版本 1.0.0-alpha04 中包含这些提交内容

新功能

  • 引入了用于自定义 BrushFamily 对象的新实验性 API,从而实现铅笔和激光笔等新画笔。该 API 允许加载由此 proto 定义的笔刷。(I8809a)

版本 1.0.0-alpha03

2025 年 2 月 12 日

发布了 androidx.ink:ink-*:1.0.0-alpha03。版本 1.0.0-alpha03 中包含这些提交内容

新功能

  • 节省磁盘和网络空间:StrokeInputBatch 的序列化可节省许多行代码,并且生成的对象仅为传统存储笔画大小的一小部分。(Ie898d)
  • 套索选择:虚线笔刷,用于绘制选择笔划;以及将选择笔划转换为 PartitionedMesh 以进行几何查询的函数。(Ia38a0)

版本 1.0.0-alpha02

2024 年 12 月 11 日

发布了 androidx.ink:ink-*:1.0.0-alpha02。版本 1.0.0-alpha02 中包含这些提交内容

API 变更

  • 修复了各种 bug。(I05dd8)

外部贡献

  • 废弃了 BuildCompat.isAtLeastV。调用方应直接针对 35 检查 SDK_INT。(I294d1)

版本 1.0.0-alpha01

2024 年 10 月 2 日

发布了 androidx.ink:ink-*:1.0.0-alpha01。版本 1.0.0-alpha01 中包含这些提交内容

新功能

  • 一个模块化且可配置的库,可让您轻松创建、渲染和操控应用中创作的精美墨迹笔画。

API 变更

新增了多个模块,可帮助开发者打造丰富的墨迹书写体验:

  • 创作:使用 InProgressStrokesView 可在收到输入时实时呈现高性能、低延迟的笔画。
  • 渲染:使用 CanvasStrokeRendererViewStrokeRenderer 将完成的墨迹笔画绘制为应用界面的一部分。
  • 笔画:用于墨迹书写功能的核心数据类型。
  • 笔刷:可配置的规范,用于指定笔画在响应用户输入时的外观和行为。
  • 几何:用于支持选择和擦除等工具的几何运算,例如交集和覆盖。