Zifferblatt zeichnen

Nachdem Sie Ihr Projekt konfiguriert und eine Klasse hinzugefügt haben, die das Zifferblatt implementiert, können Sie mit dem Schreiben von Code beginnen, um Ihr benutzerdefiniertes Zifferblatt zu initialisieren und zu zeichnen.

Für jedes Zifferblatt wird eine benutzerdefinierte abgeleitete Klasse eines Renderers erstellt, die alles implementiert, was zum Zeichnen des Zifferblatts erforderlich ist.

Der Renderer kombiniert UserStyle, die Zusatzinformationen aus ComplicationSlotsManager, die aktuelle Zeit und andere Statusinformationen, um das Zifferblatt zu rendern, wie im folgenden Beispiel gezeigt:

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