Çizgi çizme

Ink API, fırça darbelerini deyimsel bir Compose tarzında oluşturmanıza yardımcı olmak için oluşturma, fırça ve geometriye yönelik Compose birlikte çalışabilirlik modülleri sağlar.

Compose'da bir fırça darbesi çizmek için varsayılan fırça örneği, varsayılan fırçayı geçersiz kılma yöntemi ve biten fırça darbelerini işleyen bir geri çağırma gerektiren InProgressStrokes composable'ını kullanın.

  1. Kullanıcı arayüzü bileşenini ayarlama

    InProgressStrokes(
      defaultBrush = currentBrush,
      nextBrush = onGetNextBrush,
      onStrokesFinished = onStrokesFinished,
    )
    
  2. Bitmiş vuruşları işleme

    Islak vuruşlar kuruduğunda InProgressStrokes işlevinin onStrokesFinished geri çağırma bağımsız değişkeni aracılığıyla uygulamaya iletilir.

    Uygulamanız, bitmiş vuruşları ekrana aktarmak için aynı kullanıcı arayüzü iş parçacığındaki başka bir Composable'a iletmelidir.

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