Address watch face issues

Creating a custom watch face for Wear OS by Google is substantially different from creating notifications and wearable-specific activities. This page describes some issues you might encounter as you implement your first few watch faces.

Detect the shape of the screen

Wear OS devices can come with square, rectangular, and round screens. Devices with round screens can contain an inset, or _chin_, at the bottom of the screen. Your watch face must adapt to and take advantage of the particular shape of the screen.

To adapt your design when you draw your watch face, check the value returned by the context.resources.configuration.isScreenRound method and the value of the WatchState.chinHeight property.

Note: By default, watch faces on rectangular devices are run in a square emulation mode to support watch faces built for circular and square devices. To learn how to override this behavior, see Support rectangular devices.

Use relative measurements

Wear OS devices from different manufacturers feature screens with a variety of sizes and resolutions. Your watch face can adapt to these variations by using relative measurements instead of absolute pixel values.

When you draw your watch face, obtain the size of the canvas with the Canvas.getWidth() and Canvas.getHeight() methods. Then, set the positions of your graphic elements using values that are some fraction of the detected screen size. If you resize the elements of your watch face in response to a peek card, use values that are some fraction of the space remaining above the card to redraw your watch face.

The Watch face sample app demonstrates the best practices for configuring a watch face.