gpt4 book ai didi

android - 在 Android 中更改由对讲说出的文本

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:39 26 4
gpt4 key购买 nike

当 ImageView 通过辅助功能获得焦点时,我正在尝试更改 TalkBack 宣布的文本。

Android 文档指出我们应该创建一个 AccessibilityDelegate,并覆盖 onPopulateAccessibilityEvent(我正在使用支持库,因为我也支持 GingerBread)

因此,我的代码如下:

public static void setImageDelegate(View view) {
AccessibilityDelegateCompat delegate = new AccessibilityDelegateCompat() {
@Override
public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
event.getText().add(event.getContentDescription() + ", image");
}
};
ViewCompat.setAccessibilityDelegate(view, delegate);
}

当我在我的 imageview 上调用这个函数时,委托(delegate)被设置,但修改后的文本没有被读取。它只是读取原始内容描述。关于无障碍功能,我是不是做错了什么或遗漏了什么?

单步执行代码,似乎添加了正确的文本,但语音文本仍然没有变化。

注意:上面是一个人为的例子,可以使用内容描述,但在我尝试自定义 View 之前,我想弄清楚为什么它不起作用。

最佳答案

在 ICS 及更高版本中,TalkBack 在大多数情况下不使用辅助功能事件文本。相反,它检查 View 公开的 AccessibilityNodeInfo 的文本和内容描述。您需要重写 onInitializeAccessibilityNodeInfo。

不过,在大多数情况下,您只想调用 View.setContentDescription。

在这种特殊情况下,您不应设置任何内容,因为 TalkBack 会处理语音控制类型和功能。我们强烈建议开发者不要添加“按钮”或“图片”等描述。

关于android - 在 Android 中更改由对讲说出的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25939992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com