Android重力感应器Sensor编程

[日期:2010-10-23] 来源:Linux社区  作者:Linux

1、取得重力感应器Sensor对象

在 Activity 中定义以下成员变量:
private SensorManager mManager = null;
private Sensor mSensor = null;

以下代码加入到 onCreate() 方法中:
mManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

mSensor = manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

2、创建监听器

在 Activity 中定义以下成员变量:
private SensorEventListener mListener = null;

以下代码加入到 onCreate() 方法中:
mListener = new SensorEventListener() {
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}

public void onSensorChanged(SensorEvent event) {
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
doSomething(x, y, z);
}
};

3、注册监听器

以下代码加入到 onResume() 方法中:
mManager.registerListener(mListener, mSensor, SensorManager.SENSOR_DELAY_GAME);

这里 SENSOR_DELAY_GAME 还可以是以下常量:
SENSOR_DELAY_FASTEST
SENSOR_DELAY_UI
SENSOR_DELAY_NORMAL

4、取消监听器

以下代码加入到 onPause() 方法中:
mManager.unregisterListener(mListener);

5、添加当重力变化时的处理函数
在创建监听器时调用的函数 doSomething(x, y, z) 是自己定义的方法。
当手机倾斜方向改变时,监听器会调用该方法。
我们要做的,就是填充该方法,用于在重力发生变化时进行我们自己的处理。
当 x=y=0 时,手机处于水平放置状态。
当 x=0 并且 y>0 时,手机顶部的水平位置要大于底部,也就是一般接听电话时手机所处的状态。
当 x=0 并且 y<0 时,手机顶部的水平位置要小于底部。手机一般很少处于这种状态。
当 y=0 并且 x>0 时,手机右侧的水平位置要大于左侧,也就是右侧被抬起。
当 y=0 并且 x<0 时,手机右侧的水平位置要小于左侧,也就是左侧被抬起。
当 z=0 时,手机平面与水平面垂直。
当 z>0 时,手机屏幕朝上。
当 z<0 时,手机屏幕朝下

Android 重力感应相关推荐

  1. android重力传感器横竖反,Android重力感应实现方式

    在Android应用程序的开发中,占据主要地位的当属游戏的开发.我们在这篇文章中将会针对在游戏中需要用到的重力感应功能,来为大家详细分析Android重力感应的实现方法,以帮助大家解决相关问题. An ...

  2. Android重力感应开发

    一.手机中常用的传感器 在Android2.3 gingerbread系统中,google提供了11种传感器供应用层使用,具体如下:(Sensor类) #define SENSOR_TYPE_ACCE ...

  3. Android重力感应基础

    android中的很多游戏的游戏都使用了重力感应的技术,但其api demo却并没有重力感应的实例(不知道是不是我没找到,找到的朋友麻烦告诉我一下,谢谢),因为开发的需要,就研究了一下重力感应这方面, ...

  4. Android重力感应示例

    android中的很多游戏的游戏都使用了重力感应的技术,就研究了一下重力感应 以屏幕的左下方为原点,箭头指向的方向为正.从-10到10,以浮点数为等级单位,想象以下情形: 手机屏幕向上(z轴朝天)水平 ...

  5. android重力感应横竖屏,Android开发 apk强制横竖屏

    Android开发 apk强制横竖屏 (2014-05-02 10:57:50) 标签: 杂谈 全屏 在Activity的onCreate方法中的setContentView(myview)调用之前添 ...

  6. android 重力感应view,Android重力感应示例

    android中的很多游戏的游戏都使用了重力感应的技术, 就研究了一下重力感应 以屏幕的左下方为原点,箭头指向的方向为正.从-10到10,以浮点数为等级单位,想象以下情形: 手机屏幕向上(z轴朝天)水 ...

  7. android 重力感应的使用

    作者:GrayD 重力感应主要是依靠手机的加速度传感器(accelerometer)来实现 在Android的开发中一共有八种传感器但是不一定每一款真机都支持这些传感器.因为很多功能用户根本不care ...

  8. android 重力感应 横竖屏切换,重力感应 横竖屏切换

    1,去掉StatusBar 在info.plist添加UIStatusBarHidden设置Boolean,设置为YES. 2,横屏 继续在info.list中添加UIInterfaceOrienta ...

  9. android 重力感应 讲解

    一:什么是传感器:      所谓传感器能够探测如光.热.温度.重力.方向 等等的功能! 二:Android中提供传感器有哪些: 1.  加速度传感器(重力传感器) 2.  陀螺仪传感器 3.  光传 ...

最新文章

  1. 04-dispatch_group
  2. 最终章|一分钟详解PCL编译过程
  3. jquery创建并行对象或者叫合并对象
  4. [css] 写一个动画,向上匀速移动100px,向下以1.5倍速度移动200px,一直反复循环
  5. new 实例化对象是啥意思_new 关键字、实现一个new
  6. OpenBSD操作系统(1)——服务管理程序rcctl 类似linux下的service或systemctl
  7. quartz 的job中获取到applicationContext
  8. BiliBili后台源码45MB全部泄露,中奖概率写在注释里,密码硬编码,看懂了你就欧气满满(提供下载)!
  9. python编写一个汽车类_python实现汽车管理系统
  10. 华为手机计算机快捷,快速让华为手机变成一台电脑,INNOCN便携显示器的更多玩法...
  11. 主流流媒体服务器介绍
  12. java繁体转简体包,java繁体转简体
  13. 金河电站被困216小时女工获救生还记
  14. 批量压缩图片大小 – Caesium简体中文
  15. 电话号码及座机正则表达式检验
  16. 基于腾讯云搭建属于自己的Fiora聊天室
  17. C语言100题练习计划 32——猜数字游戏
  18. LARS算法的几何意义
  19. [React Native Development] Camping Spots Finder应用程序用户界面克隆第一部分-地图视图用户界面...
  20. Log4j2远程执行代码漏洞如何攻击? 又如何修复

热门文章

  1. 传说她是上海大学校花
  2. chrome播放音频报错 play failed because....
  3. python pptx教学_基于python-pptx库中文文档及使用详解
  4. win10安装界面,键盘不能用解决办法
  5. javascript简介,什么是 JavaScript?,JS的特征,开发环境
  6. [torchtext]如何利用torchtext读取json文件并生成batch
  7. tp6----结合AJAX实现分页
  8. 软件公司创业阶段的8条建议
  9. 视频教程-桫哥-GOlang基础-01基本程序设计-Go语言
  10. android自定义设置界面,Android开发之精仿QQ设置界面(自定义PreferenceActivity)