Untuk membantu Anda menulis goresan dengan cara Compose yang idiomatik, Ink API menyediakan modul interoperabilitas Compose untuk penulisan, kuas, dan geometri.
Untuk menggambar goresan di Compose, gunakan composable
InProgressStrokes yang memerlukan
instance kuas default, cara mengganti kuas default, dan callback
yang menangani goresan yang selesai.
Menyiapkan komponen UI
InProgressStrokes( defaultBrush = currentBrush, nextBrush = onGetNextBrush, onStrokesFinished = onStrokesFinished, )Menangani goresan yang selesai
Saat goresan basah menjadi kering, goresan tersebut diteruskan ke aplikasi melalui argumen callback
onStrokesFinisheddariInProgressStrokes.Aplikasi Anda harus meneruskan goresan yang telah selesai ke Composable lain dalam thread UI yang sama untuk menerapkan goresan tersebut ke layar.
@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. } }