我正在为我的项目实现一个小型库,它应该在Activity中获取所有触摸事件(无论它的RootView如何填充[按钮,文本框,...])并记录它们的位置(x,y)。 我们的想法是获得患者点击的区域的热图(点击地图/点击地图)。衡量用户与应用程序交互的方式。
我可以使用:
将TouchListener
与DecorView
连接起来
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:奖励指向提供以某种方式过滤水龙头的最佳方式,以限制采集速率(不需要太多设备 - >不会因为我们抓住而不会减慢应用程序速度存储所有这些点。)
答案 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);
}
}
但我也在等待其他(更好的?)解决方案/扩展?