Zifferblatt zeichnen

Nachdem Sie Ihr Projekt konfiguriert und eine Klasse hinzugefügt haben, die den Zifferblattdienst implementiert, können Sie Code schreiben, um Ihr benutzerdefiniertes Zifferblatt zu initialisieren und zu zeichnen.

Jedes Zifferblatt erstellt eine benutzerdefinierte Unterklasse eines Renderers, der alles implementiert, was zum Zeichnen des Zifferblatts erforderlich ist.

Der Renderer kombiniert die UserStyle, die Informationen zu Zusatzfunktionen aus ComplicationSlotsManager, die aktuelle Uhrzeit und andere Statusinformationen, um das Zifferblatt zu rendern. Ein Beispiel:

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
    }
}