模組

Ink API 採用模組化設計,因此您只需要使用所需功能。

筆觸

筆劃模組是 Ink API 的基礎,這個模組中的主要資料類型包括:

  • StrokeInputBatch:代表一系列指標輸入內容,包括位置、時間戳記,以及選用的壓力、傾斜度和方向。
  • InProgressStroke:代表正在繪製的筆劃。InProgressStroke 用於以低延遲時間算繪部分筆劃,並在輸入完成後建構最終的 Stroke,之後即可重複使用該物件。 `InProgressStroke is used by InProgressStrokesView.
  • Stroke:最終筆劃的不可變更表示法,具有固定幾何圖形。每個 Stroke 都有ImmutableStrokeInputBatch (輸入點)、Brush (樣式) 和PartitionedMesh (幾何形狀)。您可以在應用程式中儲存、操控及算繪筆劃。

幾何學

Geometry 模組支援對基本形狀執行幾何運算 (使用 BoxVec 等專用類別),以及任意形狀 (使用 PartitionedMesh),包括交集偵測和轉換。PartitionedMesh 也可以保留額外資料,以支援算繪作業。

Brush

brush 模組會定義筆觸樣式。當中包含下列兩項主要元素:

  • Brush:指定筆觸的樣式,包括基本顏色、基本大小和 BrushFamilyBrushFamily 類似於字型系列,可定義筆觸的樣式。舉例來說,BrushFamily 可以代表特定樣式的標記或螢光筆,讓不同大小和顏色的筆觸共用該樣式。
  • StockBrushes:提供原廠函式,用於建立可立即使用的 BrushFamily 例項。

編寫

「撰寫」模組可讓您擷取使用者指標輸入內容,並即時在畫面上以低延遲筆觸呈現。這個檢視區塊提供 InProgressStrokesView,可處理動作事件,並在繪製筆劃時顯示。

筆劃完成後,檢視區塊會透過註冊的回呼 (InProgressStrokesFinishedListener) 通知用戶端應用程式。應用程式可透過回呼擷取完成的筆劃,以便算繪或儲存。

轉譯

使用「Rendering」模組,即可在 Android Canvas 上繪製筆跡筆劃。 當中提供 Compose 的 CanvasStrokeRenderer 和以檢視區塊為基礎的版面配置 ViewStrokeRenderer。這些算繪器專為高效能算繪而設計,有助於提供高品質的視覺效果,包括反鋸齒。

如要算繪筆觸,請呼叫 create() 方法來取得 CanvasStrokeRenderer 例項。然後呼叫 draw() 方法,將完成 (Stroke) 或進行中 (InProgressStroke) 的筆劃算繪到 Canvas 上。

繪製筆觸時,你可以變形畫布。例如平移、縮放及旋轉。如要正確算繪筆觸,您也必須將 canvas 轉換傳遞至 CanvasStrokeRenderer.draw

如要避免個別追蹤 canvas 轉換,請改用 ViewStrokeRenderer

儲存空間

儲存模組提供實用工具,可有效率地序列化及還原序列化筆劃資料,主要著重於 StrokeInputBatch

這個模組使用通訊協定緩衝區和最佳化的差異壓縮技術,與原始方法相比,可大幅節省儲存空間。

儲存空間模組可簡化筆劃的儲存、載入及共用作業。