Après avoir configuré votre projet et ajouté une classe qui implémente le service de cadran, vous pouvez écrire du code pour initialiser et dessiner votre cadran personnalisé.
Chaque cadran crée une sous-classe personnalisée de moteur de rendu qui implémente tout ce qui est nécessaire pour dessiner le cadran.
Le moteur de rendu combine le UserStyle
, les informations de complication provenant du ComplicationSlotsManager
, l'heure actuelle et d'autres informations d'état pour afficher le cadran, comme illustré dans l'exemple suivant :
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
}
}