系统指标不尊重Gravity.BOTTOM

时间:2016-01-25 22:18:12

标签: android wear-os watch-face-api

我已经使用了演示模拟表面,并尝试使用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,但只考虑方形设备的水平重力。

知道问题可能是什么?

1 个答案:

答案 0 :(得分: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%

Gravity of status bar icons