覆盖话语提示手势(Override TalkBack gestures)

2019-10-21 14:02发布

我在它投入服务,并查看。 我需要重写一些手势ExplorationByTouch:如:我想关掉双击。 这里有一个代码,在这里我想这样做的部分。 任何想法如何?

@Override
    public boolean onTouchEvent(MotionEvent e) {
        final int action = e.getAction();

        switch (getActionMasked(action)) {

        case MotionEvent.ACTION_DOWN: { // Processing the first touch
            // Index of the first pointer always equals to 0
            final int firstIndex = 0;
            final int identifier = e.getPointerId(firstIndex);

            setPressed(true);
            sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
            Log.d("Pressed", "Press first finger");

            final Stroke firstStroke = Stroke.newInstance("first");
            strokes.put(identifier, firstStroke);
            firstStroke.append(Point.valueOf(e.getX(), e.getY()));

            anotherHandScheme.onFingerTouch();
            mainHandScheme.onFingerTouch();
            break;
        }

        case MotionEvent.ACTION_POINTER_DOWN: { // Processing of the second touch
            final int index = getActionIndex(action);
            final int identifier = e.getPointerId(index);

            // We ignore the third and the following touches
            if (identifier > 1)
                break;

            setPressed(true);
            sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);

            final Stroke secondStroke = Stroke.newInstance("second");
            strokes.put(identifier, secondStroke);
            secondStroke.append(Point.valueOf(e.getX(index), e.getY(index)));

            anotherHandScheme.onFingerTouch();
            mainHandScheme.onFingerTouch();
            break;
        }

        case MotionEvent.ACTION_MOVE: {
            final Set<Integer> identifiers = strokes.keySet();
            for (Integer id : identifiers) {
                final int index = e.findPointerIndex(id);
                final Point newPoint = Point.valueOf(e.getX(index), e.getY(index));

                if (!newPoint.equals(strokes.get(id).lastPoint()))
                    strokes.get(id).append(newPoint);
            }

            anotherHandScheme.onFingerMove();
            mainHandScheme.onFingerMove();
            break;
        }

        case MotionEvent.ACTION_POINTER_UP: { // Processing of the second touch
            final int index = getActionIndex(action);
            strokes.remove(e.getPointerId(index));

            anotherHandScheme.onFingerGone();
            mainHandScheme.onFingerGone();
            setPressed(false);
            break;
        }

        case MotionEvent.ACTION_UP:
            // All fingers leave the screen surface
            strokes.clear();
            anotherHandScheme.onFingerGone();
            mainHandScheme.onFingerGone();
            setPressed(false);
            break;
        }

        return true;
    }
文章来源: Override TalkBack gestures