3

ユーザーの署名をキャプチャするカスタムビューがあります(John Hancock)。アプリケーションにできるだけアクセスしやすくしたいので、TalkBackExplore-by-Touchの画面を最適化するように特別な注意を払っています。Explore-by-Touchは、すべての1本の指のジェスチャを2本の指のジェスチャに変更するため、カスタム署名ビューが壊れます。

私がやりたいのは、Explore-by-Touchでビューのコンテンツの説明をホバーでアナウンスし、ユーザーがダブルタップしたときにビューを有効にすることです。これにより、通常のユーザーのように、単一のポインターでビューの上に描画できるようになります。

私は周りを検索しましたが、Androidアクセシビリティライブラリに関する詳細なドキュメントを見つけるのは困難です。何か案は?

4

1 に答える 1

10

タッチによる探索がオンになっている場合、1本指のタッチイベントはホバーイベントに変換されます。これらのイベントを監視するには、ビューに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 に答える