Android TalkBack for SeekBar值

时间:2017-01-09 05:46:52

标签: android seekbar talkback

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

3 个答案:

答案 0 :(得分:1)

虽然不是完美的答案,但我找到了这个有用的方法: https://developer.android.com/reference/android/view/View.html#announceForAccessibility(java.lang.CharSequence)

这基本上使得TalkBack功能在特定事件期间进行通话。我在OnSeekBarChangeListener中添加了这个,以便在每次更改滑块的值时使其“通话”。

答案 1 :(得分:1)

如果您使用的是SeekBar,我认为您正在某个地方跟踪该值。在我们的示例中,SeekBar上方有一个TextView,它显示从SeekBar的进度派生的当前值。

我发现将android:accessibilityLiveRegion="assertive"设置为TextView的属性非常有效。结果将宣布已更新的值(因为TextView已更新),然后是SeekBar的进度。

注意:将android:accessibilityLiveRegion设置为assertive对我们来说是适当的,因为用户快速更改SeekBar的进度花费的时间更少。将其设置为polite会宣布每个增量,而assertive会将未宣布的增量跳过到最近。

Example of what I'm talking about.

答案 2 :(得分:0)

是的,它可能。

你说它显示" SeekBar控制,50%"意味着你得到百分比。

因此,使用此百分比来实现目标:

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

realProgress是你的答案。

希望它会对你有所帮助!