LOG ALL触摸窗口中的事件

时间:2014-05-01 00:49:26

标签: android touch ontouchlistener

我正在为我的项目实现一个小型库,它应该在Activity中获取所有触摸事件(无论它的RootView如何填充[按钮,文本框,...])并记录它们的位置(x,y)。 我们的想法是获得患者点击的区域的热图(点击地图/点击地图)。衡量用户与应用程序交互的方式。

我可以使用:

TouchListenerDecorView连接起来
public class Sniffer extends Activity {

    View v = getWindow().getDecorView();//.getRootView();

    v.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            float x = event.getAxisValue(MotionEvent.AXIS_X);
            float y = event.getAxisValue(MotionEvent.AXIS_Y);

            Log.i("t...OUCH: ", x + " " + y);

            return false;
        }
    }
    );
}

但是如果视图填充了其他元素,则这不起作用[仅当布局完全为空时才有效]。 每当我点击子元素时,记录器就会停止工作。

我还尝试直接在onTouchEvent的{​​{1}}内实施,但它不起作用......

有什么想法吗?

PS:认为我正在做的事情应该是UI开发和/或用户交互分析的常见问题,预制的应用程序/库指针非常受欢迎。

PPS:奖励指向提供以某种方式过滤水龙头的最佳方式,以限制采集速率(不需要太多设备 - >不会因为我们抓住而不会减慢应用程序速度存储所有这些点。)

1 个答案:

答案 0 :(得分:0)

实际上我这样做了:

public class Sniffer extends Activity {

    @Override
    public boolean dispatchTouchEvent(MotionEvent event) {
        float x = event.getAxisValue(MotionEvent.AXIS_X);
        float y = event.getAxisValue(MotionEvent.AXIS_Y);

        Log.i("t...OUCH: ", x + " " + y);

        return super.dispatchTouchEvent(event);

    }
}

但我也在等待其他(更好的?)解决方案/扩展?