API Ink имеет модульную структуру, поэтому вы можете использовать только то, что вам необходимо.
Инсульты
笔画模块是 Ink API 的基础。此模块中的关键数据类型包括:
StrokeInputBatch:表示一系列指针输入,包括其位置、时间戳,以及可选的压力、倾斜度和方向。InProgressStroke:表示正在绘制的笔画。InProgressStroke用于以低延迟渲染部分笔画,并在输入完成后构建最终的Stroke,之后该对象可以重复使用。InProgressStroke由InProgressStrokes可组合项使用。Stroke:已完成的笔画的不可变表示形式,具有固定的几何形状。每个Stroke都有一个ImmutableStrokeInputBatch(输入点)、一个Brush(样式)和一个PartitionedMesh(几何形状)。您可以在应用中存储、处理和渲染笔画。
Геометрия
Модуль Geometry поддерживает геометрические операции над примитивными фигурами (с использованием специальных классов, таких как Box и Vec ), а также над произвольными фигурами (с использованием PartitionedMesh ), включая обнаружение пересечений и преобразование. PartitionedMesh также может содержать дополнительные данные для поддержки рендеринга.
Щетка
Модуль brush определяет стиль мазков. Он состоит из двух основных частей:
-
Brush: Задает стиль штриха, включая базовый цвет, базовый размер иBrushFamily.BrushFamilyаналогичен семейству шрифтов, он определяет стиль штриха. Например,BrushFamilyможет представлять определенный стиль маркера или текстовыделителя, позволяя штрихам разных размеров и цветов использовать один и тот же стиль. -
StockBrushes: Предоставляет фабричные функции для создания готовых к использованию экземпляровBrushFamily.
Создание контента
Модуль Compose Authoring позволяет захватывать ввод данных с сенсорного экрана пользователем и отображать его в виде штрихов с низкой задержкой в реальном времени. Это достигается с помощью компонента InProgressStrokes , который обрабатывает события движения и отображает штрихи по мере их отрисовки.
После завершения штриха, компонент уведомляет клиентское приложение с помощью функции обратного вызова InProgressStrokesFinishedListener . Это позволяет приложению получить готовые штрихи для рендеринга или сохранения.
В Compose функция InProgressStrokes принимает этот коллбэк в параметре onStrokesFinished . Передайте завершенные штрихи другому компоненту, чтобы отобразить их на экране с помощью модуля рендеринга .
Визуализация
Модуль Rendering упрощает рисование штрихов чернилами на Android Canvas . Он предоставляет CanvasStrokeRenderer для Compose и ViewStrokeRenderer для макетов на основе представлений. Эти рендереры оптимизируют производительность рендеринга и помогают обеспечить высококачественное отображение, включая сглаживание.
Для отрисовки штрихов вызовите метод create() , чтобы получить экземпляр CanvasStrokeRenderer , а затем вызовите метод draw() , чтобы отрисовать на Canvas либо завершенные ( Stroke ), либо незавершенные ( InProgressStroke ) штрихи.
При рисовании обводки можно изменять холст. Например, можно перемещать, масштабировать и вращать изображение. Для корректного отображения обводки необходимо также передать преобразование canvas в метод CanvasStrokeRenderer.draw .
Чтобы избежать отдельного отслеживания преобразования canvas , используйте вместо этого ViewStrokeRenderer .
Хранилище
Модуль хранения предоставляет утилиты для эффективной сериализации и десериализации данных об инсульте, в первую очередь, с упором на StrokeInputBatch .
Модуль использует протоколы буферизации и оптимизированные методы дельта-сжатия, что приводит к значительной экономии места по сравнению с простыми методами.
Модуль хранения упрощает сохранение, загрузку и обмен результатами действий.