android屏幕重力感应器,android屏幕重力感应如何实现,很质量的一个问题
由于重力感应器在板上安装的方向不同,而移植时需要调整相关的代码。
1. 内核重力感应器驱动部分,如 MMA7660
1vi drivers/input/gsensor/mma7660.c
在这个文件中寻找相似以下的代码
1axis.y = mma7660_convert_to_int(buffer[MMA7660_REG_X_OUT]);
2axis.x = mma7660_convert_to_int(buffer[MMA7660_REG_Y_OUT]);
3axis.z = mma7660_convert_to_int(buffer[MMA7660_REG_Z_OUT]);
然后按照你自己板的需要,将 X,Y 进行交换,进行相反数运算,将 Z 进行相反运算。
其实可以做得更方便一些,把这几个操作写到 Kconfig 里面,通过宏来控制这些运算,就不用再改代码了。
01#ifdef CONFIG_SWAP_XY
02{
03 typeof(x) __tmp;
04 __tmp = x;
05 x = y;
06 y = __tmp;
07}
08#endif
09
10#ifdef CONFIG_REVERSE_X
11 x = -x;
12#endif
13
14#ifdef CONFIG_REVERSE_Y
15 y = -y;
16#endif
17/* X Y 感应方向有问题,这很容易看出来。 */
18#ifdef CONFIG_REVERSE_Z
19 z = -z; /* 按正常情况下拿着设备,屏幕斜向上,如果不灵敏,把屏幕朝下试试,如果灵敏了,一般是 Z 反了。 */
20#endif
2. Android部分,如果出现菜单显示正常,但是玩重力感应游戏时有问题,这部分就要修改(2.1)
1vim frameworks/base/core/java/android/view/WindowOrientationListener.java
1public void onSensorChanged(SensorEvent event) {
2 float[] values = event.values;
3 float X = values[_DATA_X];
4 float Y = values[_DATA_Y];
5 float Z = values[_DATA_Z];
6 float OneEightyOverPi = 57.29577957855f;
7 float gravity = (float) Math.sqrt(X*X+Y*Y+Z*Z);
android屏幕重力感应器,android屏幕重力感应如何实现,很质量的一个问题相关推荐
- android系统重力感应传感器 方向控制与方向切换,android sensor orientation 方向传感器 重力感应...
首先,获取方向传感器(参照http://developer.android.com/reference/android/hardware/SensorManager.html): publicclas ...
- android手机重力感应例子
手机重力感应实现简单介绍 现在有很多游戏是通过摇晃手机实现的,比如赛车游戏 摇骰子游戏 迷宫游戏 等等 . 今天我用简单的代码为大家介绍一下android 下重力感应的实现方式 下面是一个模拟器的屏幕 ...
- Android重力感应基础
android中的很多游戏的游戏都使用了重力感应的技术,但其api demo却并没有重力感应的实例(不知道是不是我没找到,找到的朋友麻烦告诉我一下,谢谢),因为开发的需要,就研究了一下重力感应这方面, ...
- Android 手机重力感应实现简单介绍
手机重力感应实现简单介绍 现在有很多游戏是通过摇晃手机实现的,比如赛车游戏 摇骰子游戏 迷宫游戏 等等 . 今天我用简单的代码为大家介绍一下android 下重力感应的实现方式 ...
- linux屏幕旋转后触控不准,手机重力感应失效解决方法 不能自动旋转屏幕怎么设置...
如今手机已经成为人们生活中必不可少的一个工具了,在使用过程也常常会遇到各种各样的问题,比如当手机重力感应失效的时候应该怎么解决呢,手机不能自动旋转屏幕要怎么设置,针对这个问题下面就为大家带来最新解决方 ...
- Android游戏开发Android软件开发【教程三十篇】
Android软件开发之发送短信与系统短信库解析(三十) New Android软件开发之获取通讯录联系人信息(二十九) New Android软件开发之PreferenceActivity中的组 ...
- android布局错,Android Studio布局错误
嘿,我真的需要你的帮助 . 我的问题是Android Studio不会在模拟器或物理设备中正确显示布局 . 每当我放置一个textView,按钮等,我想将它居中(水平,垂直或两者),然后我启动模拟器它 ...
- Android 屏幕重力感应
由于重力感应器在板上安装的方向不同,而移植时需要调整相关的代码. 解决屏幕显示颠倒相关问题,相关的有两部分代码: 1. 内核重力感应器驱动部分,如 MMA7660 1 vi drivers/input ...
- 让android程序根据重力感应旋转屏幕(支持4个方向旋转)
最近公司在做一个软件,用户要求软件能随着手机转动自动切换横屏和竖屏,而且要求就算是手机头下脚上的倒个个软件也要能自适应的变成合适的方向.熟悉android的人都知道,android系统的手机绝大部分只 ...
- Android 监听重力感应方向传感器改变屏幕方向
重力感应方向传感器监听事件 /*** @Description: 重力感应方向传感器监听*/ public class OrientationListener implements SensorEve ...
最新文章
- reactor与proactor模式
- “破五唯”之后,竟然立这个!
- 2011年 软件所信息安全国家重点实验室复试回忆
- C# 跨程序集调用常量、变量和函数
- 小程序微信授权登录服务器异常,解决调试腾讯云微信小程序Demo错误“登录失败:调用鉴权服务失败#40029_WEIXIN_CODE_ERR”...
- “大数据与精准营销沙龙”成功在京召开
- Crontab作业时间设置
- Git笔记(18) 搭建服务器Git
- 第三章EF的基本使用 EF添加数据实体模型
- 《从零开始学Swift》学习笔记(Day 30)——选择类还是结构体呢?
- macvlan 详解
- Java Web的Excel读取
- C++中的gotoxy函数
- 图像识别技术原理和神经网络的图像识别技术
- 十大计算机恶意软件排行榜发布
- TP5.1使用 GatewayWorker 进行 socket 通讯
- 【自动驾驶】高级辅助驾驶系统与车联网
- 【UML】UML常见的几种视图
- (隐藏滚动条)滚动条隐藏但是内容可以滚动游览器兼容
- 做了3年半测试员,薪资不到20K,今天,我辞职了…