android - 通过触摸模式检测多点触控

标签 android multi-touch talkback

我正在编写一个盲目支持的应用程序。我需要检测两指触摸。当任何辅助功能关闭时,我尝试使用 TouchListener:

 RelativeLayout rl = (RelativeLayout) findViewById(R.id.main);
    rl.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // get masked (not specific to a pointer) action
            int maskedAction = event.getActionMasked();

            Log.d(TAG, "onTouch: " + actionToString(maskedAction) + " " + event.getPointerCount());

            return true;
        }
    });


}

// Given an action int, returns a string description
public static String actionToString(int action) {
    switch (action) {

        case MotionEvent.ACTION_DOWN: return "Down";
        case MotionEvent.ACTION_MOVE: return "Move";
        case MotionEvent.ACTION_POINTER_DOWN: return "Pointer Down";
        case MotionEvent.ACTION_UP: return "Up";
        case MotionEvent.ACTION_POINTER_UP: return "Pointer Up";
        case MotionEvent.ACTION_OUTSIDE: return "Outside";
        case MotionEvent.ACTION_CANCEL: return "Cancel";
    }
    return "";
}

我明白了

  1. D/MainActivity:onTouch:指针向下 2
  2. D/MainActivity: onTouch: 指针向下 3
  3. D/MainActivity: onTouch: 指针向上 3
  4. D/MainActivity:onTouch:指针向上 2

一切都很好。 但是当我打开 TalkBack 时,我很少收到多点触控事件。这意味着我需要重复几次相同的手势,但我只得到一次日志。

有人可以给我提供任何提示吗?坦克很多。

附言它可能有用。我需要实现一些手势——用两根手指轻敲,用手指双击,用两根手指长敲,用两根手指轻扫。但是滑动效果很好,因为默认情况下它们已经在 TalkBack 中被覆盖。

最佳答案

在更深入地研究了这个问题之后,我仍然有这个问题,似乎我们无法在 TalkBack 的 Touch to Explore 功能中跟踪两个指针!

如果你勾选了my question及其答案,您会看到当您激活 TalkBack 的 Touch to Explore 功能并触摸 View 时触发的事件是 onHoverEvent

此事件仅处理一个指针,您可以使用 MotionEvent.ACTION_HOVER_ENTERMotionEvent.ACTION_HOVER_MOVEMotionEvent.ACTION_HOVER_EXIT 跟踪它。

没有像 ACTION_HOVER_POINTER_EXIT 这样的指针。

希望身边的人有什么解决办法可以和我们分享。

关于android - 通过触摸模式检测多点触控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34202724/

相关文章:

android - 如何在 Android 上更改打开的 Spinner 的文本背景颜色

wpf - 触摸界面中的 Slider\ScrollViewer 无法正常工作

C#用Kinect模拟多点触控

javascript - 尝试让两个同时操纵杆处理触摸事件

android - 嵌套的 RecyclerView;内心的 child 偷走了焦点

android - 25.1.0 Android 支持库正在破坏工厂行为

android - 重复更新 ListFragment 中的列表

android - 如何在android中的指定矩形中绘制文本?

KitKat 中的 Android WebView 可访问性

android - 当nestedscrollview 中的recyclerview 滚动时,对讲焦点转到工具栏项