This lesson teaches you to
You should also read
Creating layouts for a watch is similar to creating them for a phone, except that you have to design for the screen size and for glanceability. Do not port the functionality and UI from a phone app to a watch and expect a good experience.
You should create custom layouts only when necessary. Read the design guidelines for information on designing great watch apps.
Create Custom Notifications
In general, you should create notifications on the phone and let them automatically sync to the wearable. This lets you build your notifications once and have them appear on many types of devices (not just watches, but eventually Auto and TV) without having to design them for different form factors.
If the standard notification styles don't work for you (such as NotificationCompat.BigTextStyle or NotificationCompat.InboxStyle), you can display
an activity with a custom layout. You can only create and issue custom
notifications on the watch, and the system does not sync these
notifications to the phone.
Note: When creating custom notifications on the watch, you can use the standard notification APIs (API Level 20) instead of the Support Library.
To create a custom notification:
- Create a layout and set it as the content view for the activity that
you want to display.
public void onCreate(Bundle bundle){ ... setContentView(R.layout.notification_activity); } - Define necessary properties for the activity in the Android manifest
to allow the activity to be displayed in the watch's context stream
process. You need to declare the activity to be exportable, be
embeddable, and have an empty task affinity. We also recommend setting
the theme to
Theme.DeviceDefault.Light. For example:<activity android:name="com.example.MyDisplayActivity" android:exported="true" android:allowEmbedded="true" android:taskAffinity="" android:theme="@android:style/Theme.DeviceDefault.Light" /> - Create a
PendingIntentfor the activity that you want to display. For example:Intent notificationIntent = new Intent(this, NotificationActivity.class); PendingIntent notificationPendingIntent = PendingIntent.getActivity( this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); - Build a
Notificationand callsetDisplayIntent()providing thePendingIntent. The system uses thisPendingIntentto launch the activity when users view your notification. - Issue the notification using the
notify()method.Note:In Wear 1.x, when a notification is peeking on the homescreen, the system displays it with a standard template that it generates from the notification's semantic data. This template works well on all watchfaces. When users swipe the notification up, they'll then see the custom activity for the notification.
Create Layouts with the Wearable UI Library
The Wearable UI Library is automatically included when you create your
watch app with the Android Studio Project Wizard. You can also add this
library to your build.gradle file with the following
dependency declaration:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.support:wearable:+'
compile 'com.google.android.gms:play-services-wearable:+'
}
This library helps you build UIs that are designed for watches. For more information, see Creating Custom UIs for Wear Devices.
Here are some of the major classes:
-
BoxInsetLayout -
A
FrameLayoutobject that's aware of screen shape and can box its children in the center square of a round screen. -
CircledImageView - An image view surrounded by a circle.
-
ConfirmationActivity - An activity that displays confirmation animations after the user completes an action.
-
AnimationSet - A group of animations that should be played together.
-
DelayedConfirmationView - A view that provides a circular countdown timer, typically used to automatically confirm an operation after a short delay has elapsed.
-
SnapHelper -
SnapHelpersupports snapping for aRecyclerViewobject. -
PagerSnapHelper -
Implementation of the
SnapHelperinstance supporting pager style snapping in either vertical or horizontal orientation. -
AlertDialog - A subclass of Dialog that can display one, two or three buttons.
-
ProgressBar - Displays a bar to the user representing how far the operation has progressed; the application can change the amount of progress (modifying the length of the bar) as it moves forward.
-
WearableRecyclerView -
Wearable specific implementation of the
RecyclerViewclass for displaying scrollable lists of items in square and round devices.
Wear UI library API reference
The reference documentation explains how to use each UI widget in detail. Browse the Wear API reference documentation for the classes above.
Note: We recommend using Android Studio for Android Wear development, as it provides project setup, library inclusion, and packaging conveniences.