Strich zeichnen

Damit Sie Striche auf idiomatische Weise in Compose erstellen können, bietet die Ink API Compose-Interoperabilitätsmodule für die Erstellung, den Pinsel und die Geometrie.

Um in Compose einen Strich zu zeichnen, verwenden Sie die Composable InProgressStrokes. Dazu sind eine Standardpinselinstanz, eine Möglichkeit zum Überschreiben des Standardpinsels und ein Callback erforderlich, der abgeschlossene Striche verarbeitet.

  1. UI-Komponente einrichten

    InProgressStrokes(
      defaultBrush = currentBrush,
      nextBrush = onGetNextBrush,
      onStrokesFinished = onStrokesFinished,
    )
    
  2. Abgeschlossene Striche verarbeiten

    Wenn nasse Striche trocken werden, werden sie über das onStrokesFinished-Callback-Argument von InProgressStrokes an die Anwendung übergeben.

    Ihre App muss die abgeschlossenen Striche an ein anderes Composable-Element im selben UI-Thread übergeben, damit sie auf dem Bildschirm dargestellt werden.

    @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.
      }
    }