【问题标题】:How to get mouseover event from android emulator如何从android模拟器获取鼠标悬停事件
【发布时间】:2013-11-17 13:00:05
【问题描述】:

如何获取鼠标悬停的 x 和 y 坐标。

我在 android 中有一个服务,它通过 eneter 消息传递框架连接到 .net 应用程序。我想从服务中获得鼠标的 x 和 y 位置。我希望鼠标位置不仅在点击上,而且在鼠标悬停上。

非常感谢

【问题讨论】:

  • 您无法将鼠标悬停在 Android Emulator 中的事件...
  • 安卓模拟器模拟安卓操作系统,这是一个基于触摸的操作系统。没有 onMouseClick/MouseHover 等事件。
  • #Fabian 这不是真的。检查这个:developer.android.com/reference/android/view/…

标签: android


【解决方案1】:

也许不是最好的解决方案,但至少它有效。 两种解决方案均基于 Genymotion 模拟器。

解决方案 #1

  1. 您需要安装 Genymotion 模拟器。
  2. 从 VirtualBox 应用程序运行模拟器,稍等片刻,直到看到“init: untracked pid ... exited”之类的几行
  3. 从 Genymotion 启动器运行相同的模拟器
  4. 现在您可以通过在 VirtualBox 应用程序窗口(不是 genymotion 窗口)中移动鼠标来模拟鼠标。

取决于您在执行第 3 步之前等待多长时间,android 可以出现在 genymotion 或虚拟框窗口中。

解决方案 #2

  1. 您需要安装 Genymotion 模拟器。
  2. 运行 VirtualBox 应用,进入你的虚拟盒子“android 模拟器”:

    Settings -> Display -> Remote Display -> Check Enable Server
    
  3. 通过 genymotion 启动器运行 android 模拟器。
  4. 通过以下方式连接到您的虚拟机:

    $ rdesktop -a 16 localhost:3389
    

当您在 rdesktop 中移动光标时,您可以在 genymotion android 模拟器窗口中看到指针。现在您可以拦截悬停事件。

也许有更好的解决方案 - 禁用虚拟机的鼠标集成,因此,virtualbox 可以抓取鼠标光标,例如:

$ VBoxManage modifyvm "your-vm-name" --mouse ps2

但这对我不起作用,也许 genymotion 启动器会在每次启动时覆盖设置?

链接: http://developer.android.com/reference/android/view/View.OnHoverListener.html

附言从 api 14 开始提供悬停事件。

【讨论】:

    【解决方案2】:

    您还可以在 Live CD 模式下使用Android x86(或在 Windows 的双启动中安装它)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      • 2018-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多