برای کمک به شما در نوشتن خطوط به روش اصطلاحی Compose، رابط برنامهنویسی کاربردی Ink ماژولهای تعاملپذیری Compose را برای نوشتن، قلممو و هندسه ارائه میدهد.
برای رسم یک stroke در Compose، از Composable InProgressStrokes استفاده کنید که به یک نمونه براش پیشفرض، روشی برای لغو براش پیشفرض و یک callback که strokeهای تکمیلشده را مدیریت میکند، نیاز دارد.
تنظیم کامپوننت رابط کاربری
InProgressStrokes( defaultBrush = currentBrush, nextBrush = onGetNextBrush, onStrokesFinished = onStrokesFinished, )سکته های پایان یافته را کنترل کنید
وقتی خطوط تر (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. } }