관용적인 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. } }