我已经使用了演示模拟表面,并尝试使用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,但只考虑方形设备的水平重力。
知道问题可能是什么?
答案 0 :(得分:3)
似乎Gravity.BOTTOM
有点误导;垂直对齐不在屏幕的底部,而是在一些预设位置的最底部。
指标的位置似乎是相对的;如果它也设置为Gravity.BOTTOM
,则在热门指示符上方的任何可能的偷看卡和之上。
我发现如果设置在Wear OS中似乎不再是这种情况。setHotwordIndicatorGravity(Gravity.CENTER)
,系统指示符会略低于将两个指标设置为Gravity.BOTTOM
。这不是理想的,但它是我能得到的最好的。
我已计算出390px圆形显示的位置为:
Gravity.TOP
:8.7%Gravity.CENTER_VERTICAL
:39.0%Gravity.BOTTOM
:57.4%