یک سکته مغزی بکشید

برای کمک به شما در نوشتن خطوط به روش اصطلاحی Compose، رابط برنامه‌نویسی کاربردی Ink ماژول‌های تعامل‌پذیری Compose را برای نوشتن، قلم‌مو و هندسه ارائه می‌دهد.

برای رسم یک stroke در Compose، از Composable InProgressStrokes استفاده کنید که به یک نمونه براش پیش‌فرض، روشی برای لغو براش پیش‌فرض و یک callback که strokeهای تکمیل‌شده را مدیریت می‌کند، نیاز دارد.

  1. تنظیم کامپوننت رابط کاربری

    InProgressStrokes(
      defaultBrush = currentBrush,
      nextBrush = onGetNextBrush,
      onStrokesFinished = onStrokesFinished,
    )
    
  2. سکته های پایان یافته را کنترل کنید

    وقتی خطوط تر (wet strokes) خشک می‌شوند، از طریق آرگومان فراخوانی onStrokesFinished از InProgressStrokes به برنامه ارسال می‌شوند.

    برنامه شما باید stroke های تکمیل شده را به Composable دیگری در همان نخ 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.
      }
    }