7

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

4

3 回答 3

8

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

我发现设置android:accessibilityLiveRegion="assertive"为 TextView 的属性非常有效。它会导致更新值的公告(因为 TextView 已更新),然后是 SeekBar 的进度。

注意:设置android:accessibilityLiveRegionassertive适合我们,因为用户快速更改 SeekBar 的进度所花费的时间更少。将其设置为polite宣布每个增量,同时assertive将未宣布的增量跳过到最近的增量。

我所说的例子。

于 2019-01-10T20:24:52.640 回答
2

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

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

于 2017-01-09T08:25:10.473 回答
-4

是的,有可能。

你说它显示“SeekBar control, 50%”意味着你得到了百分比。

所以,使用这个百分比来实现你的目标:

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

realProgress 是您的答案。

希望对您有所帮助!

于 2017-01-09T06:03:03.097 回答