시계 화면 그리기

프로젝트를 구성하고 시계 화면 서비스를 구현하는 클래스를 추가한 후에는 맞춤 시계 화면을 초기화하고 그리는 코드를 작성할 수 있습니다.

모든 시계 화면은 시계 화면을 그리는 데 필요한 모든 것을 구현하는 렌더기의 맞춤 서브클래스를 만듭니다.

렌더기는 다음 예와 같이 UserStyle, ComplicationSlotsManager의 정보 표시 정보, 현재 시간, 기타 상태 정보를 결합하여 시계 화면을 렌더링합니다.

class CustomCanvasRenderer(
    private val context: Context,
    surfaceHolder: SurfaceHolder,
    watchState: WatchState,
    private val complicationSlotsManager: ComplicationSlotsManager,
    currentUserStyleRepository: CurrentUserStyleRepository,
    canvasType: Int
) : Renderer.CanvasRenderer(
    surfaceHolder = surfaceHolder,
    currentUserStyleRepository = currentUserStyleRepository,
    watchState = watchState,
    canvasType = canvasType,
    interactiveDrawModeUpdateDelayMillis = 16L
) {
    override fun render(canvas: Canvas, bounds: Rect, zonedDateTime: ZonedDateTime) {
        // Draw into the canvas
    }

    override fun renderHighlightLayer(canvas: Canvas, bounds: Rect, zonedDateTime: ZonedDateTime) {
        // Draw into the canvas
    }
}