Android 手机重力感应实现简单介绍
2011-07-09 13:19
573 查看
手机重力感应实现简单介绍
现在有很多游戏是通过摇晃手机实现的,比如赛车游戏 摇骰子游戏 迷宫游戏 等等 。 今天我用简单的代码为大家介绍一下android 下重力感应的实现方式 下面是一个模拟器的屏幕 Y轴 以屏幕的左下方为原点 ,向上为正 向下为负数(刚好和编程时坐标是相反的 向下为正 向上为负数)。从-10到10。 X轴 以屏幕左下方为原点 向左为正 向右为负数取值范围从-10到10 。 Z轴 朝天就是正数 朝地就是负数数取值范围从-10到10 。由此可见重力感应的取值范围都是在 -10 到10之间的 我们就可以根据这个数字算出 速度 加速度 等等。
![](http://hi.csdn.net/attachment/201107/9/0_131018736748g6.gif)
下面我介绍一下代码的实现方式
现在有很多游戏是通过摇晃手机实现的,比如赛车游戏 摇骰子游戏 迷宫游戏 等等 。 今天我用简单的代码为大家介绍一下android 下重力感应的实现方式 下面是一个模拟器的屏幕 Y轴 以屏幕的左下方为原点 ,向上为正 向下为负数(刚好和编程时坐标是相反的 向下为正 向上为负数)。从-10到10。 X轴 以屏幕左下方为原点 向左为正 向右为负数取值范围从-10到10 。 Z轴 朝天就是正数 朝地就是负数数取值范围从-10到10 。由此可见重力感应的取值范围都是在 -10 到10之间的 我们就可以根据这个数字算出 速度 加速度 等等。
![](http://hi.csdn.net/attachment/201107/9/0_131018736748g6.gif)
下面我介绍一下代码的实现方式
private SensorManager sensorMgr; Sensor sensor = sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); //保存上一次 x y z 的坐标 float bx = 0; float by = 0; float bz = 0; long btime = 0;//这一次的时间 sensorMgr = (SensorManager) getSystemService(SENSOR_SERVICE); SensorEventListener lsn = new SensorEventListener() { public void onSensorChanged(SensorEvent e) { float x = e.values[SensorManager.DATA_X]; float y = e.values[SensorManager.DATA_Y]; float z = e.values[SensorManager.DATA_Z]; //在这里我们可以计算出 X Y Z的数值 下面我们就可以根据这个数值来计算摇晃的速度了 //我想大家应该都知道计算速度的公事 速度 = 路程/时间 //X轴的速度 float speadX = (x - bx) / (System.currentTimeMillis() - btime); //y轴的速度 float speadY = (y - by) / (System.currentTimeMillis() - btime); //z轴的速度 float speadZ = (z - bz) / (System.currentTimeMillis() - btime); //这样简单的速度就可以计算出来 如果你想计算加速度 也可以 在运动学里,加速度a与速度, //位移都有关系:Vt=V0+at,S=V0*t+1/2at^2, S=(Vt^2-V0^2)/(2a),根据这些信息也可以求解a。 //这里就不详细介绍了 公事 应该初中物理课老师就教了呵呵~~ bx = x; by = y; bz = z; btime = System.currentTimeMillis(); } public void onAccuracyChanged(Sensor s, int accuracy) { } }; // 注册listener,第三个参数是检测的精确度 sensorMgr.registerListener(lsn, sensor, SensorManager.SENSOR_DELAY_GAME);
相关文章推荐
- Android 手机重力感应实现简单介绍
- Android 有道词典的简单实现方法介绍
- 【Android UI设计与开发】1.引导界面(一)ViewPager介绍和简单实现
- Android把手机作为FTP服务器,在PC端管理手机文件的简单实现
- android简单实现从网络下载文件到手机sd卡
- 如何使用androidpn实现android手机消息推送(简单的源码分析)
- 如何使用androidpn实现android手机消息推送(简单的源码分析)
- 啄木鸟android手机记录软件介绍(简单看一下)
- Android Adapter接口及实现类之ArrayAdapter、SimpleAdapter和BaseAdapter的简单介绍及运用
- Android 简单几步实现手机号码归属地查询,可监听文本框的变化自动查询
- Android把手机作为FTP服务器,在PC端管理手机文件的简单实现
- Android 补间动画,具体介绍了透明度、平移,旋转,缩放4种动画效果的实现,简单易懂
- 【Android UI设计与开发】4.底部菜单栏(一)Fragment介绍和简单实现
- Android手机摇一摇功能的简单实现
- Android 一个简单手机响铃功能实现
- Android如何实现简单的手机桌面GridView
- android 简单通知实现 和 手机运营商判断
- android 之手机拨号器,以及短信发送器的简单实现
- Android简单实现将手机图片上传到服务器中
- WebView的介绍与简单实现Android和H5互调的方法