我有一个自定义视图,用于捕获用户的签名(John Hancock)。我希望我们的应用程序尽可能地易于访问,因此我需要特别注意确保优化我们的屏幕 TalkBack 和触摸式浏览。由于触摸式浏览将所有一个手指手势更改为两个手指手势,因此会破坏自定义签名视图。
我想要做的是触摸式浏览在悬停时宣布视图的内容说明,然后在用户双击时启用视图。这将允许他们使用像普通用户一样的单个指针在视图顶部绘制。
我一直在搜索,但很难找到关于Android辅助功能库的详细文档。有什么想法吗?
答案 0 :(得分:8)
启用“触摸浏览”后,单指触摸事件将转换为悬停事件。您可以在视图中添加OnHoverListener或覆盖View.onHoverEvent来观看这些活动。
一旦您拦截了这些事件,您通常可以将它们传递给正常的触摸处理代码,并从悬停操作映射到触摸操作(如下所示)。
@Override
public boolean onHoverEvent(MotionEvent event) {
if (mAccessibilityManager.isTouchExplorationEnabled()) {
return onTouchEvent(event);
} else {
return super.onHoverEvent(event);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_HOVER_ENTER:
return handleDown(event);
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_HOVER_MOVE:
return handleMove(event);
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_HOVER_EXIT:
return handleUp(event);
}
return false;
}