프로젝트를 구성하고 시계 화면 서비스를 구현하는 클래스를 추가한 후에는 맞춤 시계 화면을 초기화하고 그리는 코드를 작성할 수 있습니다.
모든 시계 화면은 시계 화면을 그리는 데 필요한 모든 것을 구현하는 렌더기의 맞춤 서브클래스를 만듭니다.
렌더기는 다음 예와 같이 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
}
}