android 获取点击屏幕视图,Android如何在显示RelativeLayout时获取talkBack读...

我有一个活动,它使用以下代码为整个活动的视图添加自定义视图

activity.getWindow().getDecorView()).addView(newView)

为了显示教练标记/使用标记的屏幕.

我的自定义视图从RelativeLayout扩展而来,在其构造函数中,在屏幕底部添加了一个按钮,当单击该按钮时,将取消视图.

我已经覆盖了“dispatchDraw”方法,这样我就可以在特定位置的布局中添加多个coachmark UI对象(textview和bitmaps).这些coachmark对象使用如下代码在视图上绘制自己

canvas.save();

canvas.translate(positioning[0], positioning[1]);

textView.draw(canvas);

canvas.restore();

canvas.save();

canvas.drawBitmap(bitmap, positioning[2], positioning[3], new Paint());

canvas.restore();

ISSUE:启用TalkBack时

>当显示此教练标记视图时,没有任何内容被大声读出

这个观点

>如果用户按下文本视图和位图所在的位置,则不会出现任何问题

大声地念出来

然而,当用户按下按钮时,按钮的内容描述被大声读出.

我假设textViews和Bitmaps未被读出的原因是由于我们上面的代码在画布上呈现它们的方式.

问题1:当点击textview和位图时,有没有办法让TalkBack大声说出什么?

– 我已经尝试设置contentDescriptions并可以专注于textviews和位图,但这没有任何区别.

问题2:另一种方法是让TalkBack在显示自定义视图时读出内容,并且此文本可以汇总屏幕中显示的所有主题标记.我无法解决如何做到这一点,有没有人有任何建议?

– 我已经尝试将我的customView设置为可聚焦(setFocasable(true)并给它一个contentDescription但这不起作用.

– 我尝试在绘制自定义视图时发起操作,然后向事件添加内容描述,但这也不起作用,即

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);

}

@Override

public void onInitializeAccessibilityNodeInfo (AccessibilityNodeInfo info) {

super.onInitializeAccessibilityNodeInfo(info);

// this is not read out load when the view is displayed, but is read when the view is pressed

info.setContentDescription("on Initialize Accessibility Node Info User Tips");

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值