Android TalkBack for SeekBar values

ebdffaop  于 2023-05-05  发布在  Android
关注(0)|答案(3)|浏览(199)

所以我有一个SeekBar在我的应用程序和我使用的TalkBack功能的Android。滚动SeekBar时,设备显示“(android:contentDescription of view),SeekBar control,50%”。有没有可能改变它,使它说的实际值(从-4到+4),如“SeekBar控制,负4”?

yqlxgs2m

yqlxgs2m1#

如果你用的是搜索栏,我想你是在跟踪某个地方的价值。在我们的例子中,在SeekBar上面有一个TextView,它显示从SeekBar的进度中获得的当前值。
我发现将android:accessibilityLiveRegion="assertive"设置为TextView的属性效果非常好。它导致一个更新值的公告(因为TextView是更新),然后是SeekBar的进度。
注意:将android:accessibilityLiveRegion设置为assertive对我们来说是合适的,因为用户快速更改SeekBar的进度所花费的时间更少。将其设置为polite会通告每个增量,而assertive会跳过未通告的增量,直到最近。

z18hc3ub

z18hc3ub2#

虽然这不是一个完美的答案,但我发现了这个有用的方法:https://developer.android.com/reference/android/view/View.html#announceForAccessibility(java.lang.CharSequence)
这基本上使TalkBack功能在特定事件期间通话。我在OnSeekBarChangeListener中添加了这个,以便在每次更改滑块的值时使其“说话”。

w3nuxt5m

w3nuxt5m3#

是的,有可能。
你说它显示“SeekBar控制,50%”意味着你正在获得百分比。
所以,用这个百分比来实现你的目标:

int minValue = -4;
int maxValue = 4;
int diff = maxValue - minValue;
int realProgress = minValue + (diff * percentage / 100);

realProgress是您的答案。
希望对你有帮助!

相关问题