定位常见的问题
创建 Android Wear 的客制化表盘与创建 notification 和可穿戴特有的 activity 的方法不同。这几课介绍如何解决我们在实现第一个表盘时会遇到的一些问题。
一些 Android Wear 设备的屏幕是方形的,另一些是圆形的。圆形屏幕的设备可以在屏幕的底部包含一个插入部分(或者“下巴”)。我们的表盘应该适应和利用好屏幕特定的形状,如 设计指南 中的描述。
Android Wear 让表盘在运行时决定屏幕的形状。为了检测屏幕是方形还是圆形,需要像下面的代码一样重写 类的 onApplyWindowInsets()
方法:
当重新绘制表盘时,检查成员变量 mIsRound
和 的值来适应我们的设计。
当 notification card 出现时,模拟表盘需要调整,如缩小表盘使得自身不被 card 覆盖。数字表盘在屏幕显示时间的区域不会被 card 覆盖,通常不需要作出调整。使用 WatchFaceService.getPeekCardPosition()
方法确定在 card 上方可用于调整表盘的空间。
Figure 1. 当 notification card 出现时,一些模拟表盘需要调整
在环境模式下,card 的背景是透明的。如果我们的表盘在环境模式下,card 的附近包含详细的信息,那么可以考虑在 card 的上面绘制一个黑色方块,确保用户可以读到 card 的内容。
- 使用 方法设置状态栏的位置。
- 使用
setViewProtection()
方法,用一个灰色的半透明背景保护状态栏和热词。由于系统指示图标是白色的,如果我们的表盘背景是明亮的,这样做事很必要的。
Figure 2. 状态栏
更多关于系统指示图标的内容,请查看 和 设计指南。
不同厂商的 Android Wear 设备屏幕会有不同的尺寸和分辨率。我们的表盘应该通过使用相对尺寸而不是绝对像素值来适应这些差异。