Skip to content

Most visited

Recently visited

navigation

解决常见问题

为 Android Wear 创建自定义表盘与创建通知和可穿戴式设备特定的 Activity 截然不同。本课将向您介绍在实现最初几个表盘时如何解决遇到的一些问题。

检测屏幕的形状

一些 Android Wear 设备具有方形屏幕,而其他设备则具有圆形屏幕。具有圆形屏幕的设备可在屏幕底部包含插边(或“下巴”)。如设计指南中所述,您的表盘应适应并利用屏幕的特定形状。

Android Wear 让您的表盘可以在运行时确定屏幕形状。要检测屏幕是方形还是圆形,请按照如下方式在 CanvasWatchFaceService.Engine 类中替换 onApplyWindowInsets() 函数:

private class Engine extends CanvasWatchFaceService.Engine {
    boolean mIsRound;
    int mChinSize;

    @Override
    public void onApplyWindowInsets(WindowInsets insets) {
        super.onApplyWindowInsets(insets);
        mIsRound = insets.isRound();
        mChinSize = insets.getSystemWindowInsetBottom();
    }
    ...
}

要在绘制表盘时适应您的设计,请检查 mIsRoundmChinSize 成员变量的值。

适应提示卡

图 1. 当通知卡出现时,一些模拟表盘需要进行调整。

:提示卡仅出现在 Wear 1.x 应用中。

在用户接收通知时,通知卡可能会占据大部分的屏幕,具体取决于系统界面样式。您的表盘应适应这些情况,确保用户在通知卡出现时仍能看到时间。

在通知卡出现时,模拟表盘可以作出调整,如缩小表盘,让表盘位于提示卡未覆盖的屏幕部分内。在提示卡未覆盖的屏幕区域显示时间的数字表盘通常不需要调整。要确定提示卡上的可用空间,以便适应您的表盘,请使用 WatchFaceService.Engine.getPeekCardPosition() 函数。

在微光模式下,提示卡拥有透明背景。在微光模式下,如果您的表盘在卡片附近包含详细信息,请考虑在详细信息周围绘制黑色矩形,以确保用户能够阅读卡片的内容。

配置系统指示器

要确保系统指示器保持可见,您可以配置它们在屏幕上的位置,以及它们在您创建 WatchFaceStyle 实例时是否需要背景保护:

如需了解与系统指示器有关的详细信息,请参阅配置系统界面和阅读设计指南

使用相对测量值

不同制造商的 Android Wear 设备的屏幕大小和分辨率各不相同。您的表盘应通过使用相对测量值而不是绝对像素值来适应这些变化。

在绘制表盘时,您可以使用 Canvas.getWidth()Canvas.getHeight() 函数获取画布的大小,并使用属于所检测屏幕大小一部分的值来设置图形元素的位置。如果您调整表盘元素的大小以响应提示卡,请使用属于提示卡上方剩余空间一部分的值来重新绘制您的表盘。

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)