स्ट्रोक बनाना

Ink API, Compose के साथ काम करने वाले इंटरऑपरेबिलिटी मॉड्यूल उपलब्ध कराता है. इनकी मदद से, मुहावरेदार तरीके से स्ट्रोक लिखे जा सकते हैं. ये मॉड्यूल, लिखने, ब्रश करने, और ज्यामिति के लिए उपलब्ध होते हैं.

Compose में स्ट्रोक बनाने के लिए, InProgressStrokes कंपोज़ेबल का इस्तेमाल करें. इसके लिए, डिफ़ॉल्ट ब्रश इंस्टेंस, डिफ़ॉल्ट ब्रश को बदलने का तरीका, और स्ट्रोक पूरा होने पर उसे हैंडल करने वाला कॉलबैक ज़रूरी होता है.

  1. यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट सेट अप करना

    InProgressStrokes(
      defaultBrush = currentBrush,
      nextBrush = onGetNextBrush,
      onStrokesFinished = onStrokesFinished,
    )
    
  2. स्ट्रोक पूरे होने पर उन्हें मैनेज करना

    जब गीले स्ट्रोक सूख जाते हैं, तो उन्हें ऐप्लिकेशन को onStrokesFinished के InProgressStrokes कॉलबैक आर्ग्युमेंट के ज़रिए पास किया जाता है.

    आपके ऐप्लिकेशन को, स्ट्रोक पूरा होने के बाद उन्हें स्क्रीन पर दिखाने के लिए, उन्हें एक ही यूज़र इंटरफ़ेस (यूआई) थ्रेड में मौजूद किसी दूसरे कंपोज़ेबल को पास करना होगा.

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