為協助您以慣用的 Compose 方式編寫筆劃,Ink API 提供 Compose 互通性模組,用於編寫、筆刷和幾何圖形。
如要在 Compose 中繪製筆觸,請使用 InProgressStrokes 可組合函式,該函式需要預設筆刷例項、覆寫預設筆刷的方法,以及處理完成筆觸的回呼。
設定 UI 元件
InProgressStrokes( defaultBrush = currentBrush, nextBrush = onGetNextBrush, onStrokesFinished = onStrokesFinished, )處理完成的筆劃
筆劃變乾後,系統會透過
InProgressStrokes的onStrokesFinished回呼引數傳遞至應用程式。應用程式必須將完成的筆劃傳遞至同一 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. } }