安卓:跟踪鼠标指针移动

8

假设我正在使用一台普通的鼠标,是否可以在Android中跟踪鼠标指针的X和Y坐标?

3个回答

10
你需要一个 OnGenericMotionListener
OnGenericMotion(...., MotionEvent me) {
if (me.getToolType(0) == MotionEvent.TOOL_TYPE_MOUSE) {

}

需要 14+ 版本的API [已确认]我找到了一款带有USB鼠标的平板电脑,并且可以确认这对于鼠标移动是有效的。你将会收到大量的信息,因此应该考虑简单操作或休眠。


View.OnGenericMotion(View v, MotionEvent event) 从 API 级别 12 开始提供:http://developer.android.com/reference/android/view/View.OnGenericMotionListener.html#onGenericMotion - Bianca Daniciuc
1
在我的情况下,我将它附加到了一个 Webview 上,并且只有当我点击鼠标左键时才会收到事件... - Roel

0

我从ACTION_MOVE的文档中得出的结论是只有拖动事件会被报告:

getAction()的常量:在按下手势(ACTION_DOWN和ACTION_UP之间)期间发生了变化。 运动包含最新的点以及自上次down或move事件以来的任何中间点。


1
非常感谢你的见解,Matthew。我也读过相关资料。我想知道是否有办法在没有ACTION_DOWN MotionEvent的情况下跟踪鼠标移动? - John Erick
你有带鼠标的安卓设备吗?如果有,你可以测试一下。我不知道有哪些设备带有鼠标。 - Matthew
是的,我实际上有一款可以通过USB端口使用鼠标的Android平板电脑。此外,我已经有了一种使用ACTION_DOWN、ACTION_MOVE和ACTION_DOWN的方法,并且它们都运行良好。但是,是否有任何方法可以在没有先进行ACTION_DOWN的情况下为鼠标指针设置ACTION_MOVE事件? - John Erick
嗨。我也遇到了同样的问题。除非你找到了一种跟踪鼠标移动的方法,否则很难。我听说可以使用内部类来获取鼠标移动,但这并不容易。 - SAN
有没有人知道如何使用来自其他系统的鼠标,即鼠标连接到我的笔记本电脑,笔记本电脑和平板电脑使用Wi-Fi直连相互连接。现在我想在平板电脑上使用鼠标。 - Srb

0
在我的情况下,OnGenericMotion 的解决方案并没有起作用,但是将一个 OnHoverListener 附加到主视图就解决了问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接