2

我采用了演示模拟表盘,并尝试让系统指示器出现在底部,使用setStatusBarGravity(Gravity.BOTTOM). 似乎没有尊重这种特殊的重力。

setWatchFaceStyle(new WatchFaceStyle.Builder(AnalogWatchFace.this)
        .setCardPeekMode(WatchFaceStyle.PEEK_MODE_SHORT)
        .setBackgroundVisibility(WatchFaceStyle.BACKGROUND_VISIBILITY_INTERRUPTIVE)
        .setShowSystemUiTime(false)
        .setStatusBarGravity(Gravity.BOTTOM)
        .setHotwordIndicatorGravity(Gravity.BOTTOM)
        .build());

通过将其设置为该值,指示符(和“Ok Google”启动指令指示符)会出现在屏幕中央。在圆形设备上,它们看起来完全居中,在方形设备上垂直居中在左侧。

我知道 Android Wear 上有一个问题,即在应用程序重新启动之间指标没有更新,但我尝试过切换表盘,甚至完全重新安装它。我也尝试过setStatusBarGravity()将水平对齐与二进制 OR 结合使用,但方形设备只考虑水平重力。

知道问题可能是什么吗?

4

1 回答 1

3

这似乎Gravity.BOTTOM有点误导;垂直对齐不在屏幕底部,而是在一些预设位置的最底部。

指标的位置似乎是相对的;如果它设置为Gravity.BOTTOM.

我发现如果我设置setHotwordIndicatorGravity(Gravity.CENTER)了,系统指标会比设置两个指标都略低Gravity.BOTTOM。这并不理想,但这是我能得到的最好的。在 Wear OS 中似乎不再是这种情况。

我已经根据 390px 圆形显示计算了位置:

  • Gravity.TOP: 8.7%
  • Gravity.CENTER_VERTICAL: 39.0%
  • Gravity.BOTTOM: 57.4%

状态栏图标的重力

于 2016-01-25T22:25:03.307 回答