একটি স্ট্রোক আঁকা

ইডিওম্যাটিক কম্পোজ পদ্ধতিতে স্ট্রোক লেখার জন্য আপনাকে সাহায্য করার জন্য, ইঙ্ক এপিআই অথরিং, ব্রাশ এবং জ্যামিতির জন্য কম্পোজ ইন্টারঅপারেবিলিটি মডিউল প্রদান করে।

কম্পোজে স্ট্রোক আঁকতে, InProgressStrokes কম্পোজেবল ব্যবহার করুন যার জন্য একটি ডিফল্ট ব্রাশ ইনস্ট্যান্স, ডিফল্ট ব্রাশ ওভাররাইড করার একটি উপায় এবং সমাপ্ত স্ট্রোক পরিচালনা করে এমন একটি কলব্যাক প্রয়োজন।

  1. UI কম্পোনেন্ট সেট আপ করুন

    InProgressStrokes(
      defaultBrush = currentBrush,
      nextBrush = onGetNextBrush,
      onStrokesFinished = onStrokesFinished,
    )
    
  2. সমাপ্ত স্ট্রোকগুলি পরিচালনা করুন

    যখন ভেজা স্ট্রোক শুকিয়ে যায়, তখন সেগুলি InProgressStrokes এর onStrokesFinished কলব্যাক আর্গুমেন্টের মাধ্যমে অ্যাপ্লিকেশনে পাঠানো হয়।

    আপনার অ্যাপটিকে অবশ্যই সমাপ্ত স্ট্রোকগুলি একই UI থ্রেডের মধ্যে অন্য একটি Composable-এ পাস করতে হবে যাতে সেগুলি স্ক্রিনে কমিট করা যায়।

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