繪製筆劃

為協助您以慣用的 Compose 方式編寫筆劃,Ink API 提供 Compose 互通性模組,用於編寫、筆刷和幾何圖形。

如要在 Compose 中繪製筆觸,請使用 InProgressStrokes 可組合函式,該函式需要預設筆刷例項、覆寫預設筆刷的方法,以及處理完成筆觸的回呼。

  1. 設定 UI 元件

    InProgressStrokes(
      defaultBrush = currentBrush,
      nextBrush = onGetNextBrush,
      onStrokesFinished = onStrokesFinished,
    )
    
  2. 處理完成的筆劃

    筆劃變乾後,系統會透過 InProgressStrokesonStrokesFinished 回呼引數傳遞至應用程式。

    應用程式必須將完成的筆劃傳遞至同一 UI 執行緒中的另一個可組合函式,才能將筆劃提交至畫面。

    @Composable
    fun DrawingScreen(
      finishedStrokes: List<Strokes>,
      onStrokesFinished: (List<Stroke>) -> Unit,
      currentBrush: Brush,
      onGetNextBrush: () -> Brush,
      modifier: Modifier = Modifier
    ) {
      val canvasStrokeRenderer = remember { CanvasStrokeRenderer.create() }
    
      Box(modifier = Modifier.fillMaxSize()) {
          // The Canvas for drawing the permanent, dry strokes.
          Canvas(modifier = Modifier.fillMaxSize()) {
              finishedStrokes.forEach { stroke ->
                  canvasStrokeRenderer.draw(
                      stroke = stroke,
                      canvas = this,
                      strokeToScreenTransform = Matrix()
                  )
              }
          }
    
          //The wet ink layer for live drawing.
          // The InProgressStrokes composable for the wet ink layer goes here.
      }
    }