Skip to content

Most visited

Recently visited

navigation

创建自定义布局

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

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

创建自定义通知

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

如果标准通知样式(例如 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 开发,因为使用它可以方便地进行项目设置、库集成和打包。

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)