安卓TalkBack功能如何读取SeekBar的值?

7

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


1
你想要将那个-4和+4加到两边,还是在滚动时显示该值,例如3.2? - Charuක
1
-4到+4已经显示在SeekBar控件上方,但它是一个不同的视图,因此这些值不会被作为实际的-4到4来表述,而是按百分比表达。 - mugiwara528
3个回答

8
如果您正在使用SeekBar,我想您正在某个地方跟踪该值。在我们的情况下,SeekBar上方有一个TextView显示从SeekBar的进度派生出的当前值。我发现为TextView设置android:accessibilityLiveRegion="assertive"属性非常完美。它会先宣布更新后的值(因为TextView已经更新),然后是SeekBar的进度。
注意:将android:accessibilityLiveRegion设置为assertive对我们来说是合适的,因为用户可以快速更改SeekBar的进度而不会浪费时间。将其设置为polite会在每次增量时进行宣布,而assertive会跳过未宣布的增量到最新的增量。

Example of what I'm talking about.


2

-4

是的,这是可能的。

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

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

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

realProgress 是您的答案。

希望它能对您有所帮助!


1
不是我需要的。我已经知道这个了。我的问题是,我希望TalkBack功能说出“零”或其他实际值,而不是“50%”。 - mugiwara528
是的,因为现在它只显示百分比,例如“50%”。 - mugiwara528
@Pieces,这个问题不是关于Talkback的,真正的问题是值以百分比的形式出现,而mugiwara想要它以实际进度的形式呈现。 - Jagruttam Panchal
1
这是关于回话说话百分比的问题,而不是显示它们。 - Pieces
1
我有同样的问题,所以我理解你的问题。你应该听取自己的建议。看一下问题下面的第二条评论。 - Pieces
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接