Zifferblatt zeichnen

Nachdem Sie Ihr Projekt konfiguriert und eine Klasse hinzugefügt haben, die den Zifferblattdienst implementiert, können Sie mit dem Schreiben von Code zum Initialisieren und Zeichnen Ihres benutzerdefinierten Zifferblatts beginnen.

Jedes Zifferblatt erstellt eine benutzerdefinierte Unterklasse eines Renderers, der alle erforderlichen Funktionen zum Zeichnen des Zifferblatts implementiert.

Der Renderer kombiniert die UserStyle, die Zusatzinformationen aus ComplicationSlotsManager, die aktuelle Uhrzeit und andere Statusinformationen, um das Zifferblatt zu rendern. Hier 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
    }
}