android重力感应
来源:互联网 发布:linux nginx 配置域名 编辑:程序博客网 时间:2024/04/27 19:44
手机和PC的一个比较大的区别就是支持重力感应,所以手机上很多地方都可以利用一下下这个特性~前两天做了一下,现在就总结总结(发现好少哦~)
主要用到的就三个对象:
/** SensorManager对象 */
SensorManager sensorMgr;
/** Sensor对象 */
android.hardware.Sensor sensor; 【1.5版本之后貌似不支持直接import这个包了,只好用这种方法。。。】
/** SensorEventListener对象,用于监听 */
SensorEventListener lsn;
声明好之后,就可以和手机兄说一声了,请求支援,在oncreate方法里写:【通常这种得到系统服务的操作只能在这里用,所以这个类必须继承activity。。。声音控制的时候也有这种情况】
sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE);
sensor = sensorMgr .getDefaultSensor(android.hardware.Sensor.TYPE_ACCELEROMETER);
这里的服务类型是有很多的:
TYPE_ACCELEROMETER 加速度 ;
TYPE_ALL 所有类型,NexusOne默认为加速度;
TYPE_GYROSCOPE 回转仪(这个不太懂));
TYPE_LIGHT光线感应;
TYPE_MAGNETIC_FIELD 磁场;
TYPE_ORIENTATION 定向(指北针)和角度;
TYPE_PRESSUR 压力计 ;
TYPE_PROXIMITY 近似。。。(依旧不懂);
intTYPE_TEMPERATURE 温度
种类是很多,不过貌似常用的只有第一个,其他的也很少能查到什么资料,以后研究研究了再说吧。。。小小偷懒下
到此为止准备工作就完成了,之后就是监听。
注册监听:sensorMgr.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME);
灵敏度依旧有几个选项:SENSOR_DELAY_FASTEST 最灵敏,快的无语
SENSOR_DELAY_GAME 游戏的时候用这个,不过一般用这个就够了,和上一个很难看出区别
SENSOR_DELAY_NORMAL 比较慢。
SENSOR_DELAY_UI 最慢的,几乎就是横和纵的区别
取消监听:sensorMgr.unregisterListener(lsn, sensor);
Last but not least ......【英语考试后遗症。。。】 其实最最重要的是完成这些步骤之后,可以得到手机的位置参数x,y,z。至于用这些参数做什么,那就得具体情况具体分析了。
lsn = new SensorEventListener() {
public void onSensorChanged(SensorEvent e) {
x = e.values[SensorManager.DATA_X];
y = e.values[SensorManager.DATA_Y];
z = e.values[SensorManager.DATA_Z];
act(x, y, z); //这里写自己需要的任何操作,最简单的就是根据坐标移动位置了,当然复杂一点可以计算角度之类的,数学的力量是无穷的啊无穷的~
}
@Override
public void onAccuracyChanged(android.hardware.Sensor sensor, int accuracy) {}
};
三个坐标的空间坐标轴如图所示(绿色),float类型,取值范围是-10~10,与地面平行时为0,正方向远离地面(向上)时为正数,竖直向上时为10;指向地面(向下)为负数,竖直向下为-10。如,当水平放置是为(0,0,10)。
要注意的是,这个坐标系的原点和二维确定位置的坐标系(红色)不同,所以正负上也会不太一样,记得在某本书上见到是说这个坐标系是模仿飞行系统里面的,可以把手机想象成飞机。。。关于这个坐标轴的一些术语还是和那个一样的说。。。
- Android重力感应Demo
- Android 重力感应
- android 重力感应
- Android重力感应
- Android重力感应Demo
- android重力感应
- Android 之重力感应
- Android 重力感应
- Android重力感应示例
- Android重力感应
- Android重力感应Demo
- android 重力感应监听
- Android重力感应Demo
- Android 重力感应详情
- android重力感应
- android 重力感应
- android重力感应
- Android 屏幕重力感应
- 深入学习分区表及分区索引(10)--交换分区
- 中关村黑马学习日记的总结
- Loal-Blance Algorithm
- sql中Distinct、Group by、having、order by使用注意事项
- 编写安全的驱动程序之输入输出检查
- android重力感应
- 如何在VC6.0中设置条件断点
- 编写安全的驱动程序之验证驱动的调用者
- hoj10240----包括汉字字符的字符串逆置
- JS取各种尺寸的方法
- C++中std::tr1::function和bind 组件的使用
- SQL Server的取整函数
- jdbc.property配置错误 引起的后台错误
- SQL Server 触发器(表数据添加)