如何启用触控探索时,如何保持单指针手势?

时间:2013-01-14 22:55:04

标签: android accessibility android-view talkback

我有一个自定义视图,用于捕获用户的签名(John Hancock)。我希望我们的应用程序尽可能地易于访问,因此我需要特别注意确保优化我们的屏幕 TalkBack 触摸式浏览。由于触摸式浏览将所有一个手指手势更改为两个手指手势,因此会破坏自定义签名视图。

我想要做的是触摸式浏览在悬停时宣布视图的内容说明,然后在用户双击时启用视图。这将允许他们使用像普通用户一样的单个指针在视图顶部绘制。

我一直在搜索,但很难找到关于Android辅助功能库的详细文档。有什么想法吗?

1 个答案:

答案 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;
}