lightbulb_outline Please take our October 2018 developer survey. Start survey

创建自定义布局

为手表创建布局与为手机创建布局很相似,区别在于您设计时必须考虑到手表屏幕的尺寸,必须确保屏幕内容一览无余。请不要将手机应用的功能和界面移植到手表中,不要指望这样能带来良好的体验。

仅当确有必要时,才应创建自定义布局。阅读设计准则,了解有关设计精彩手表应用的信息。

创建自定义通知

一般而言,您应在手机中创建通知,让它们自动同步到穿戴式设备中。这样,您只需构建一次通知,即可让通知出现在多种类型的设备上(不只是手表,甚至还包括汽车和电视),而不必针对不同的机型尺寸而分别设计通知。

如果标准通知样式(例如 NotificationCompat.BigTextStyleNotificationCompat.InboxStyle)不能满足您的需要,您可以使用自定义布局显示 Activity。在手表上,您只能创建和发布自定义通知,系统不会将这些通知同步到手机上。

:在手表上创建自定义通知时,您可以使用标准通知 API(API 级别 20)来取代支持库。

要创建自定义通知,请执行以下操作:

  1. 创建布局并将其设置为您要显示的 Activity 的内容视图。
    public void onCreate(Bundle bundle){
        ...
        setContentView(R.layout.notification_activity);
    }
    
  2. 在 Android manifest 中显示该 Activity 的必要属性,以允许在手表的情境卡片信息流中显示该 Activity。您需要将该 Activity 声明为可导出、可嵌套,并且具有一个空的任务关联。我们还建议将主题背景设置为 Theme.DeviceDefault.Light。例如:
    <activity android:name="com.example.MyDisplayActivity"
        android:exported="true"
        android:allowEmbedded="true"
        android:taskAffinity=""
        android:theme="@android:style/Theme.DeviceDefault.Light" />
    
  3. 为您要显示的 Activity 创建一个 PendingIntent。例如:
    Intent notificationIntent = new Intent(this, NotificationActivity.class);
    PendingIntent notificationPendingIntent = PendingIntent.getActivity(
            this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    
  4. 构建一个 Notification 并调用提供 PendingIntentsetDisplayIntent()。在用户查看您的通知时,系统将使用此 PendingIntent 启动该 Activity。
  5. 使用 notify() 函数发布通知。

    :在 Wear 1.x 中,当某个通知出现在主屏幕上时,系统会以利用通知语义数据生成的标准模板来显示该通知。此模板在所有表盘上运行良好。当用户向上滑动通知时,他们会看到该通知的自定义 Activity。

使用 Wear 界面库创建布局

在您使用 Android Studio 项目向导创建手表应用时,向导会自动包含 Wear 界面库。您也可以通过以下依赖项声明将此库添加到您的 build.gradle 文件中:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:wear:26.0.0'
    compile 'com.google.android.gms:play-services-wearable:+'
}

该库可以帮助您构建针对手表而设计的界面。如需了解详细信息,请参阅为穿戴式设备创建自定义界面

以下是部分主要的类:

BoxInsetLayout
一个 FrameLayout 对象,可识别屏幕形状并将其子对象包含在圆形屏幕的中央方形区域中。
ConfirmationActivity
一个 Activity,可在用户完成某项操作后显示确认动画。
AnimationSet
一组应一起播放的动画。
CircularProgressLayout
一种布局,可提供围绕子视图的圆形倒计时器。常用作在经过短暂延时后确认某个操作的自动计时器。
SnapHelper
SnapHelper 支持吸附RecyclerView 对象。
PagerSnapHelper
实现 SnapHelper 实例,支持以垂直或水平方向吸附的分页器样式。
AlertDialog
Dialog 的一个子类,可显示一个、两个或三个按钮。
ProgressBar
向用户显示一个用于表示操作进度的进度条;在操作进行过程中,应用可以更改进度量(修改进度条的长度)。
WearableRecyclerView
RecyclerView 类的穿戴式设备版实现,用于在方形和圆形设备上显示滚动项目列表。

Wear 界面库 API 参考

该参考文档详细介绍了如何使用每个界面微件。浏览 Wear API 参考文档,了解上述类。

:我们建议使用 Android Studio 进行 Android Wear 开发,因为使用它可以方便地进行项目设置、库集成和打包。