Die Ink API ist modularisiert, sodass Sie nur die Funktionen verwenden können, die Sie benötigen.
Schläge
Das Modul strokes bildet die Grundlage der Ink API. Die wichtigsten Datentypen in diesem Modul sind:
StrokeInputBatch: Eine Reihe von Zeigereingaben, einschließlich ihrer Position, ihres Zeitstempels und optional ihres Drucks, ihrer Neigung und ihrer Ausrichtung.InProgressStroke: Stellt einen Strich dar, der gerade gezeichnet wird.InProgressStrokewird verwendet, um Teilstriche mit geringer Latenz zu rendern und das endgültigeStrokezu erstellen, sobald die Eingabe abgeschlossen ist. Danach kann das Objekt wiederverwendet werden. `InProgressStrokewird vonInProgressStrokesViewverwendet.Stroke: Eine unveränderliche Darstellung eines abgeschlossenen Strichs mit fester Geometrie. JedesStrokehat einImmutableStrokeInputBatch(Eingabepunkte), einBrush(Stil) und einePartitionedMesh(geometrische Form). Sie können Striche in Ihrer Anwendung speichern, bearbeiten und rendern.
Geometrie
Das Modul Geometry unterstützt geometrische Operationen für primitive Formen (mit speziellen Klassen wie Box und Vec) sowie beliebige Formen (mit PartitionedMesh), einschließlich der Erkennung von Überschneidungen und Transformationen. PartitionedMesh kann auch zusätzliche Daten für das Rendern enthalten.
Pinsel
Das Modul brush definiert den Stil von Strichen. Sie besteht aus zwei Hauptteilen:
Brush: Gibt den Stil eines Strichs an, einschließlich der Grundfarbe, der Grundgröße undBrushFamily.BrushFamilyentspricht einer Schriftfamilie und definiert den Stil eines Strichs. EinBrushFamilykann beispielsweise einen bestimmten Markierungs- oder Highlighterstil darstellen, sodass Striche mit unterschiedlichen Größen und Farben diesen Stil gemeinsam nutzen können.StockBrushes: Stellt Factory-Funktionen zum Erstellen von einsatzbereitenBrushFamily-Instanzen bereit.
Autorentool
Mit dem Modul Authoring können Sie die Eingabe des Nutzerzeigers erfassen und in Echtzeit als Striche mit geringer Latenz auf dem Bildschirm rendern. Sie stellt eine InProgressStrokesView bereit, die Bewegungsereignisse verarbeitet und die Striche beim Zeichnen anzeigt.
Sobald ein Strich fertig ist, benachrichtigt die Ansicht die Clientanwendung über einen registrierten Callback (InProgressStrokesFinishedListener). Über den Callback kann die Anwendung den fertigen Strich zum Rendern oder Speichern abrufen.
Rendering
Mit dem Rendering-Modul können Sie Tuschestriche auf einem Android-Canvas zeichnen.
Es bietet CanvasStrokeRenderer für Compose und ViewStrokeRenderer für auf Views basierende Layouts. Diese Renderer sind für das leistungsstarke Rendern konzipiert und tragen dazu bei, hochwertige Grafiken zu liefern, einschließlich Antialiasing.
Rufen Sie zum Rendern von Strichen die Methode create() auf, um eine CanvasStrokeRenderer-Instanz zu erhalten. Rufen Sie dann die Methode draw() auf, um entweder fertige (Stroke) oder laufende (InProgressStroke) Striche auf einem Canvas zu rendern.
Sie können die Arbeitsfläche transformieren, während Sie einen Strich zeichnen. Beispiele hierfür sind Schwenken, Zoomen und Drehen. Damit der Strich richtig gerendert wird, müssen Sie auch die canvas-Transformation an CanvasStrokeRenderer.draw übergeben.
Wenn Sie die canvas-Transformation nicht separat erfassen möchten, verwenden Sie stattdessen ViewStrokeRenderer.
Speicher
Das storage-Modul bietet Dienstprogramme zum effizienten Serialisieren und Deserialisieren von Strichdaten, wobei der Schwerpunkt hauptsächlich auf StrokeInputBatch liegt.
Das Modul verwendet Protocol Buffers und optimierte Delta-Komprimierungstechniken, was im Vergleich zu einfachen Methoden zu erheblichen Speicherplatzeinsparungen führt.
Das Speichermodul vereinfacht das Speichern, Laden und Teilen von Strichen.