API Ink имеет модульную структуру, поэтому вы можете использовать только то, что вам необходимо.
Инсульты
Модуль «Штрихи» служит основой API Ink. Ключевые типы данных в этом модуле:
-
StrokeInputBatch: Представляет собой последовательность входных данных указателя, включая его положение, метку времени, а также, при необходимости, давление, наклон и ориентацию. -
InProgressStroke: Представляет собой контур, который активно рисуется.InProgressStrokeиспользуется для рендеринга частичных контуров с низкой задержкой и для построения окончательногоStrokeпосле завершения ввода, после чего объект можно использовать повторно.InProgressStrokeиспользуется в компонентеInProgressStrokes. -
Stroke: Неизменяемое представление окончательного варианта штриха с фиксированной геометрией. КаждыйStrokeимеетImmutableStrokeInputBatch(входные точки),Brush(стиль) иPartitionedMesh(геометрическая форма). Вы можете хранить, изменять и отображать штрихи в своем приложении.
Геометрия
Модуль Geometry поддерживает геометрические операции над примитивными фигурами (с использованием специальных классов, таких как Box и Vec ), а также над произвольными фигурами (с использованием PartitionedMesh ), включая обнаружение пересечений и преобразование. PartitionedMesh также может содержать дополнительные данные для поддержки рендеринга.
Щетка
Модуль brush определяет стиль мазков. Он состоит из двух основных частей:
-
Brush: Задает стиль штриха, включая базовый цвет, базовый размер иBrushFamily.BrushFamilyаналогичен семейству шрифтов, он определяет стиль штриха. Например,BrushFamilyможет представлять определенный стиль маркера или текстовыделителя, позволяя штрихам разных размеров и цветов использовать один и тот же стиль. -
StockBrushes: Предоставляет фабричные функции для создания готовых к использованию экземпляровBrushFamily.
Создание контента
借助 Compose 创作模块,您可以捕获用户触摸输入,并将其实时呈现为屏幕上的低延迟笔画。这是通过 InProgressStrokes 可组合项实现的,该可组合项可处理运动事件并在绘制笔画时显示笔画。
笔画完成后,可组合项会使用 InProgressStrokesFinishedListener 回调通知客户端应用。这允许应用检索完成的笔画以进行渲染或存储。
在 Compose 中,InProgressStrokes 通过 onStrokesFinished 参数接收此回调。将完成的笔画传递给另一个可组合项,以使用渲染模块将其提交到屏幕。
Визуализация
Модуль Rendering упрощает рисование штрихов чернилами на Android Canvas . Он предоставляет CanvasStrokeRenderer для Compose и ViewStrokeRenderer для макетов на основе представлений. Эти рендереры оптимизируют производительность рендеринга и помогают обеспечить высококачественное отображение, включая сглаживание.
Для отрисовки штрихов вызовите метод create() , чтобы получить экземпляр CanvasStrokeRenderer , а затем вызовите метод draw() , чтобы отрисовать на Canvas либо завершенные ( Stroke ), либо незавершенные ( InProgressStroke ) штрихи.
При рисовании обводки можно изменять холст. Например, можно перемещать, масштабировать и вращать изображение. Для корректного отображения обводки необходимо также передать преобразование canvas в метод CanvasStrokeRenderer.draw .
Чтобы избежать отдельного отслеживания преобразования canvas , используйте вместо этого ViewStrokeRenderer .
Хранилище
Модуль хранения предоставляет утилиты для эффективной сериализации и десериализации данных об инсульте, в первую очередь, с упором на StrokeInputBatch .
Модуль использует протоколы буферизации и оптимизированные методы дельта-сжатия, что приводит к значительной экономии места по сравнению с простыми методами.
Модуль хранения упрощает сохранение, загрузку и обмен результатами действий.