3

我有一个捕获用户签名的自定义视图(约翰汉考克)。我希望我们的应用程序尽可能易于访问,因此我特别注意确保优化TalkBackExplore-by-Touch的屏幕。由于Explore-by-Touch将所有一个手指手势更改为两个手指手势,因此它破坏了自定义签名视图。

我想做的是让Explore-by-Touch在悬停时宣布视图的内容描述,然后在用户双击时启用视图。这将允许他们像普通用户一样使用单个指针在视图顶部绘制。

我四处搜索,但很难找到有关 Android 可访问性库的详细文档。有任何想法吗?

4

1 回答 1

10

开启触控探索后,单指触控事件会转换为悬停事件。您可以通过将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;
}
于 2013-02-20T19:47:23.850 回答