プロジェクトを構成し、ウォッチフェイス サービスを実装するクラスを追加したら、カスタム ウォッチフェイスの初期化と描画を行うコードを作成できます。
すべてのウォッチフェイスは、ウォッチフェイスの描画に必要なものをすべて実装する、レンダラのカスタム サブクラスを作成します。
レンダラは、次の例に示すように、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
}
}