Ink API 采用模块化设计,因此您只需使用所需的功能。
笔画
Strokes 模块是 Ink 库的基础,提供主要 API 接口,并包含用于与库交互的核心数据类型。此模块中的主要数据类型包括:
StrokeInputBatch
: 表示一系列指针输入,包括位置、时间戳和 压力、倾斜度和方向(可选)。此类数据可与Stroke
或InProgressStroke
类搭配使用,并且是用于为手写识别库提供输入的数据类型。Stroke
:不可变 具有固定几何图形的最终描边的表示形式。笔触由ImmutableStrokeInputBatch
(输入点)、Brush
(样式)和PartitionedMesh
(几何图形)组成。描边可以在 部署应用InProgressStroke
:Stroke
的可变对应项,用于在绘制过程中进行增量输入处理和实时渲染。虽然InProgressStroke
通常是通过InProgressStrokesView
间接使用的,但也可以直接用于高级自定义。
几何体
Geometry 模块为基本形状和复杂形状提供了一套几何图形基元,以及用于交叉检测和转换的操作。这些基元可与手写笔触无缝集成,让您能够构建全笔触橡皮擦和矩形选择工具等功能。
虽然 Box
和 Vec
等类主要用于执行几何操作,但 PartitionedMesh
可能还包含渲染专用数据。
Brush
Brush 模块
用作笔触创建和渲染的声明性配置,
其功能与文本字体类似。答
Brush
对象
以下属性:
- 颜色:可以是纯色,也可以是分层效果和 纹理。
- 尺寸:可以是固定的,也可以用作动态尺寸调整的基础。
- 系列:与文本字体类似,系列定义了笔触的整体样式。
- Epsilon:控制笔触矢量几何图形的细节级别,表示视觉区分的最小单位。
epsilon
属性会播放
在定义坐标系的精度方面起着至关重要的作用。如需有关如何选择合适的 epsilon 值的更多指导,请参阅画笔 API 部分。
BrushFamily
充当
强大的配置,无需深入研究即可创建富有表现力的笔画
复杂几何图形或渲染代码。该库提供了一组预定义的
StockBrushes
,其中包括
压敏笔、荧光笔和记号笔。
编写
借助 Authoring
模块,开发者可以捕获用户触摸输入,并将其实时渲染为屏幕上的低延迟笔触。这是通过
InProgressStrokesView
类,
该组件会处理动作事件,并在绘制时直观呈现笔触。
当笔画完成时,该模块会使用
onStrokesFinished()
回调
InProgressStrokesFinishedListener
。
借助回调,应用可以检索完成的笔触数据以进行渲染或存储。
渲染
渲染模块简化了在
Android Canvas
。模块
提供 CanvasStrokeRenderer
和
ViewStrokeRenderer
基于 View 的布局,这两者都能优化渲染性能,并确保
高品质视觉元素,包括抗锯齿功能。
如需将笔触渲染到画布,请使用 create()
方法获取 CanvasStrokeRenderer
实例。然后,使用 draw()
方法将完成或正在进行的笔触渲染到画布上。
在绘制笔触的过程中,可以对画布进行转换(平移、缩放或旋转),但为了确保笔触在屏幕上绘制的效果最佳,必须将应用于画布的转换也传递给 CanvasStrokeRenderer#draw()
。为避免需要单独跟踪此信息,请改用 ViewStrokeRenderer
。