您的位置:首页 > 移动开发 > Android开发

Android 增加鼠标支持

2012-05-15 10:55 381 查看
转载:http://blog.sina.com.cn/s/blog_6e15a6010100mafz.html

Android默认是没有鼠标支持的,但在Android系统会应用到许多其他的地方,如平板电脑、电视中,许多时候就需要鼠标的支持。

支持原理:Android中有原生的Touch事件,鼠标的各种事件都可以转换为各种Touch事件,将鼠标事件走与Touch事件相关的路径就可以实现。需要注意的是,在屏幕旋转后,鼠标的坐标等信息需要程序处理才能正确。

修改文件概览:

C++文件:

frameworks\base\include\ui\EventHub.h

frameworks\base\libs\ui\EventHub.cpp

java文件:

frameworks\base\core\java\android\view\RawInputEvent.java

frameworks\base\services\java\com\android\server\InputDevice.java

frameworks\base\services\java\com\android\server\KeyInputQueue.java

frameworks\base\services\java\com\android\server\WindowManagerService.java

文件功能描述

EventHub.h 增加鼠标设备的定义

EventHub.cpp 函数open_device(const char *deviceName)中增加鼠标类型

RawInputEvent.java 增加鼠标设备

InputDevice.java 增加鼠标连接状态标志

MotionState中增加方法 generateMouseMotion()将原始鼠标时间转化为

MotionEvent事件

KeyInputQueue.java 在事件RawInputEvent.EV_DEVICE_ADDED中判断鼠标设备,动态增加

在事件RawInputEvent.EV_DEVICE_REMOVED中,动态判断鼠标删除

在ev.type == RawInputEvent.EV_KEY中增加鼠标左中右键处理

在ev.type == RawInputEvent.EV_REL中增加鼠标坐标变动和滚轮的处理

recycleEvent()中增加鼠标相关的清理工作

WindowManagerService.java 实现在界面上的画鼠标及移动鼠标的工作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: