问题描述
我正在研究可产生各种触摸事件和手势的BLE触摸板。目前,我不处理手势。我已经编写了一个后台服务来获取触摸事件的位置,将它们转换为MotionEvents,然后使用view.disptachTouchEvents(motionEvent)将它们分派到活动的rootView对象。由于这些事件已分派到rootView,因此事件会滴落到正确的视图中,以便它们进行处理。这很好。但是,我有两个问题需要进一步改进。
-
应用程序中有多个Activity对象。当前,每个活动都需要为后台服务(库)传递其自己的rootView到disptachTouchEvents。如何将这些事件调度到全局的Window或WindowManager而不是rootView,这样我就不需要将事件调度到单个的根视图了?
-
此外,如何将触摸事件发送到应用程序外部的活动,例如警报,共享(带有FB,SMS等),后退按钮,....,其中应用程序开发人员的控制较少?
当前代码如下
private void dispatchEvent (View rootView,float x1,float y1,int actionType){
MotionEvent motionEvent = MotionEvent.obtain(
SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),actionType,// MotionEvent.ACTION_UP,MotionEvent.ACTION_DOWN,...
(float) x1*xRatio,// map touchpad to viewport
(float) y1*yRatio,0 // metastate;
);
rootView.dispatchTouchEvent(motionEvent);
//frameLayout.dispatchTouchEvent(motionEvent);
}
感谢您的建议。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)