모듈

Ink API는 모듈화되어 있으므로 필요한 것만 사용할 수 있습니다.

笔画模块是 Ink API 的基础。此模块中的关键数据类型包括:

  • StrokeInputBatch:表示一系列指针输入,包括其位置、时间戳,以及可选的压力、倾斜度和方向。
  • InProgressStroke:表示正在绘制的笔画。InProgressStroke 用于以低延迟渲染部分笔画,并在输入完成后构建最终的 Stroke,之后该对象可以重复使用。 InProgressStrokeInProgressStrokes 可组合项使用。
  • Stroke:已完成的笔画的不可变表示形式,具有固定的几何形状。每个 Stroke 都有一个 ImmutableStrokeInputBatch(输入点)、一个 Brush(样式)和一个 PartitionedMesh(几何形状)。您可以在应用中存储、处理和渲染笔画。

도형

几何图形模块支持对基本形状(使用 BoxVec 等专用类)以及任意形状(使用 PartitionedMesh)进行几何运算,包括相交检测和转换。 PartitionedMesh 还可以保存其他数据以支持渲染。

브러시

brush 모듈은 획의 스타일을 정의합니다. 다음 두 가지 주요 부분으로 구성됩니다.

  • Brush: 기본 색상, 기본 크기, BrushFamily을 비롯한 획의 스타일을 지정합니다. BrushFamily는 글꼴 모음과 유사하며 획의 스타일을 정의합니다. 예를 들어 BrushFamily는 특정 스타일의 마커나 형광펜을 나타낼 수 있으므로 크기와 색상이 다른 획이 해당 스타일을 공유할 수 있습니다.
  • StockBrushes: 바로 사용할 수 있는 BrushFamily 인스턴스를 생성하는 팩토리 함수를 제공합니다.

작성

借助 Compose 创作模块,您可以捕获用户触摸输入,并将其实时呈现为屏幕上的低延迟笔画。这是通过 InProgressStrokes 可组合项实现的,该可组合项可处理运动事件并在绘制笔画时显示笔画。

笔画完成后,可组合项会使用 InProgressStrokesFinishedListener 回调通知客户端应用。这允许应用检索完成的笔画以进行渲染或存储。

在 Compose 中,InProgressStrokes 通过 onStrokesFinished 参数接收此回调。将完成的笔画传递给另一个可组合项,以使用渲染模块将其提交到屏幕。

렌더링

렌더링 모듈은 Android Canvas에 잉크 획을 그리는 작업을 간소화합니다. Compose에는 CanvasStrokeRenderer를 제공하고 뷰 기반 레이아웃에는 ViewStrokeRenderer를 제공합니다. 이러한 렌더러는 렌더링 성능을 최적화하고 앤티앨리어싱을 비롯한 고품질 시각적 요소를 제공하는 데 도움이 됩니다.

획을 렌더링하려면 create() 메서드를 호출하여 CanvasStrokeRenderer 인스턴스를 가져온 다음 draw() 메서드를 호출하여 완료된 (Stroke) 획 또는 진행 중인(InProgressStroke) 획을 Canvas에 렌더링합니다.

획을 그릴 때 캔버스를 변환할 수 있습니다. 예를 들어 이동, 확대/축소, 회전 등이 있습니다. 획을 올바르게 렌더링하려면 canvas 변환을 CanvasStrokeRenderer.draw에도 전달해야 합니다.

canvas 변환을 별도로 추적하지 않으려면 대신 ViewStrokeRenderer를 사용하세요.

저장용량

存储模块提供用于高效序列化和反序列化笔画数据的实用程序,主要侧重于 StrokeInputBatch

该模块使用 Protocol Buffer 和优化的增量压缩技术,与简单的方法相比,可显著节省存储空间。

存储模块简化了笔画的保存、加载和分享。